最近在做项目的时候发现运行在模拟器上图标丢失,变成了苹果默认的白板图标。因为一开始只在模拟器上出现,而且也确认没有人动过图标文件,所以没有在意,后来慢慢的该问题出现在真机上,一开始是只有iphone x,然后就是iphone 8,慢慢的变成不管是模拟器还是真机,所有ios11 系统的图标都没有了。接下来影响到的机型和系统越来越多。
尝试:
1:一开始想到的是可能有人误改了图标文件,于是删除了images.xcassest中的appicon文件,从新生成→添加图标,但是依然未解决。(✘)
2:想到是图片格式/尺寸的问题,于是所有图片按照规定重新生成,但是仍然无济于事。(✘)
3:因为设置图标的方法除了在images.xcassest中的appicon文件中设置还可以在info.plist设置、或者直接在工程里面放一个icon.png的图片来设置,所以都检查了一便发现也不是这个原因(✘)
3:重置手机。(✘)
解决:
google了下发现好多国外的开发遇到这个问题,并且都是使用xcode9.x.x版本,所以怀疑是苹果的bug
不过这个问题并不是谁都会出现也不是所有使用xcode9 + ios11的设备都会出现
后来经过大家的讨论终于有人说这个其实是cocoapods的bug,暂时并不能通过更新cocoapods更新来解决,因为最新版的cocoapods
也存在这个问题,解决方法如下:
在你的podfile中加入以下代码就可以了
1
2
3
4
5
6
7
8
|
post_install do |installer|
copy_pods_resources_path = "pods/target support files/pods-工程名/pods-工程名-resources.sh"
string_to_replace = '--compile "${built_products_dir}/${unlocalized_resources_folder_path}"'
assets_compile_with_app_icon_arguments = '--compile "${built_products_dir}/${unlocalized_resources_folder_path}" --app-icon "${assetcatalog_compiler_appicon_name}" --output-partial-info-plist "${build_dir}/assetcatalog_generated_info.plist"'
text = file.read(copy_pods_resources_path)
new_contents = text.gsub(string_to_replace, assets_compile_with_app_icon_arguments)
file.open(copy_pods_resources_path, "w" ) {|file| file. puts new_contents }
end
|
像这样:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://juejin.im/post/5a29f0a6f265da433562aab6