前段时间 App 在iOS 10上出现闪退(尼玛重大bug有没有!), 由于用的还是Xcode 7.3.1, 于是乎升级Xcode8, 打开自己的项目工程, 心里想着理所当然的build真机完美运行..., 然而理想很丰满, 现实很骨感,一看build日志, 满屏的黄的红的, 顿时泪牛满面...
接下来就是痛苦的bug搜寻中, 废话不多说了, 总结下升级 Xcode8所遇到的坑, 本人绝壁菜鸟一枚, 写的不好请勿见怪, 有些是找度娘, google出来的解决方法, 如有雷同, 看在菜鸟的身份上, 请勿吐槽 😁.
一 Xcode8报duplicate symbols for architecture arm64
升级Xcode8后,报符号重定义错误duplicate symbols。
修改Build Setting下的NO Common Blocks和Enable Testability为NO即可解决。
二 真机运不了
若error log中关于debug_in...等语句, 将edit scheme build 模式 改成 release
三 注释快捷键无法使用
command + /快捷键无法使用,在终端执行以下命令,然后重启Xcode即可。
sudo /usr/libexec/xpccachectl
四 注释快捷键
Xcode8已经不能再使用第三方插件了,但是Xcode8已经完善了一部分第三方插件才能实现的功能(抹杀了第三方插件作者,掠夺别人的劳动成果),比如语法提示、代码注释。
Xcode8代码注释快捷键为command + option + /。
五 控制器打印乱七八糟的东西
在当前Scheme中的Run -> Arguments -> Environment Variables中添加键值对OS_ACTIVITY_MODEdisable。
六 上传itunesconnect提示二进制无效
这是因为iOS对用户的安全和隐私的增强,在申请很多私有权限的时候都需要添加描述。但是,在使用Xcode 8之前的Xcode还是使用系统的权限通知框。
要想解决这个问题,只需要在info.plist添加 NSContactsUsageDescription 的 key ,value自己随意填写就可以,这里列举出对应的key(Source Code模式下):
目前就遇到这么多, 写的不好请多多见谅~