xcode8.0->8.3升级

由于种种原因,我们的iOS项目需要直接从xcode8.0编译通过的版本升级到xcode8.3,其间遇到了很多不好处理的问题在此记录。
1. code sign error 这个问题我还不明白产生的原因,但是将cocoapods版本升级到1.2.0以上,ruby版本升级到2.2.1以上之后,重新pod install可以解决。
2. podspec规范 8.2以后的xocde对podspec有了更严格的要求,在pod install时会有错误提示,基本上按照提示补全即可。主要可能缺少的在于source字段缺失以及description字段为空。
3. comment编译问题
xcode8.0->8.3升级
文章图片
8.3升级_第1张图片" style="border:1px solid black; "> comment编译问题
如图所示,在升级到8.3之后编译会报出大量的类似错误,主要是由于代码注释不规范引起的,之前应该也出现过,不过都还是warning的形式。
在podfile中加入 config.build_settings['CLANG_WARN_DOCUMENTATION_COMMENTS'] = "NO"选项重新install编译即可。
4. 代码规范问题 【xcode8.0->8.3升级】前面的问题都解决后,编译时还是有可能出现link错误,可能是由于某些代码不规范造成的,不如下面这个例子:

NS_ENUM(NSUInteger, NVLocalNotiTriggerType){ NVLocalNotiTriggerTypeOnce = 0, NVLocalNotiTriggerTypeDaily, NVLocalNotiTriggerTypeWeekly };

这样定义一个枚举类型可能会引起link错误NVLocalNotiTriggerType duplicated,改为
typedef NS_ENUM(NSUInteger, NVLocalNotiTriggerType){ NVLocalNotiTriggerTypeOnce = 0, NVLocalNotiTriggerTypeDaily, NVLocalNotiTriggerTypeWeekly };

即可。类似问题还有一些,解决时可以考虑是否换一种写法来试试。

    推荐阅读