xcode 6编译xcode7 images.xcasset编译问题

参考链接http://stackoverflow.com/questions/32486540/error-building-project-in-xcode-7-beta-6-after-it-was-successfully-built-in-xcod

由于要用7.1的模拟器,所以用6.4的Xcode来编译项目,去掉了所有ios 9.0sdk的所有特性,包括__kindof,及泛型的_Nonnull 这些

最后一步在编译images.xcasset的时候,来了个这个神错误

*** Terminating app due to uncaught exception 'IBAssertionFailure', reason: 'ASSERTION FAILURE:

Reason:    code which should be unreachable has been reached


最后在上述参考链接中发现,原来是xcode7中添加的xcassets的Contents.json 中更改了stretch的特性设置块名称,需要把xcode7中的"cap-Insets"及"mode" : "tile" 分别修改为 "capInsets"和"mode" : "fill",这下心里凉了一半,每个image一个Contents.json,这得改到猴年马月,不过好在,应该只是在xcode7中添加且设置了stretch策略的图片才会有这些需要修改的新特性,只要找到这些为数不多的(相对于所有的来说)contents.json,修改之即可

这个时候到了shell脚本大显身手的时候了,找文件的命令大概是这样子 sudo find ./ -name "Contents.json",这步只是找到所有Contents.json文件而已,还要把需要更改的挑出来,好啦,拿去吧

sudo find ./ -name Contents.json | xargs grep "\"mode\" : \"tile\""

sudo find ./ -name Contents.json | xargs grep "cap-Insets"

分别找到含有cap-Insets和"mode":"tile" 的文件,好在我只有一个这样的文件,修改,保存,重新编译,succeeded

你可能感兴趣的:(xcode 6编译xcode7 images.xcasset编译问题)