今日做练习项目的时候遇到unable to run app in Simpulator 真的很令人费解,
网上大多数解决方式就是在simuplator中Reset content and Settings.但是此方法对于我出现的问题并没有什么作用.
经过多次排查下, 发现product -> clean 能够暂时解决问题, 但是一旦导入项目中的图片资源文件夹(需要读取里面的plist), 就会再次出现unable to run app in Simpulator . 所以锁定是该图片资源文件夹的问题.
研究后问题浮出水面:
我导入项目中的图片资源文件夹由于该文件夹中的图片是jgp格式,需要独立放在非images.xcassets文件夹中.
但是我在导入的时候, 并非选择create folder references而是选中了create groups, create groups导入在编译时不会将其看做一个文件,而是看成一个分组(仅在xcode中的分组文件夹) ,最终会将图片资源文件夹中的所有内容放在根目录下.
继续排查发现情况出现了文件夹中有和项目文件信息info.plist同名的info.plist,就这样导致了整个问题的发生.
如下图所示, 如果是使用create folder references所创建的文件夹会显示蓝色, 而不是create groups 的黄色
另外发现如果使用group方式导入jpg图片资源文件夹,在app打包的时候ipa中并不会导入图片以及里面的任何文件.同时ipa中的CodeResources文件也不会导入相应的资源相对路径.
总之太坑爹了!
总结:
1. 不允许创建和系统重名的info.plist 文件(如果导入时并没有分文件夹,打包时会出现运行问题)
2.导入jpg图片文件时候,需要明确导入方式为create folder references而不是create groups