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升级_第1张图片
comment编译问题

如图所示,在升级到8.3之后编译会报出大量的类似错误,主要是由于代码注释不规范引起的,之前应该也出现过,不过都还是warning的形式。
在podfile中加入 config.build_settings['CLANG_WARN_DOCUMENTATION_COMMENTS'] = "NO"选项重新install编译即可。

4. 代码规范问题

前面的问题都解决后,编译时还是有可能出现link错误,可能是由于某些代码不规范造成的,不如下面这个例子:

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

这样定义一个枚举类型可能会引起link错误NVLocalNotiTriggerType duplicated,改为

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

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

你可能感兴趣的:(xcode8.0->8.3升级)