周二,公司给我配了一台新电脑,到App Store上下载了最新的Xcode (Xcode 10 iOS 12),兴致勃勃的运行以前的项目,噌噌的报了几个错,现在总结一下具体的报错原因和解决办法:
问题1 报文件重复
Xcode10使用了一个的新创建系统,比之前的提供更好的可靠性与创建性能,而且可以获取项目配置问题(默认设置新创建系统)
在苹果文档中,提及Xcode10中的关于旧项目New Build System更改适配中提及到以下两点
New Build System会对构建中的元素循环进行严格的检查,避免不必要的重建,这个也是错误出现的原因。
解决:
File--> Workspace Settings --> Build System 修改为Legacy Build System (默认是New Build System)
问题2 找不到libstdc++.6.0.9
升级到Xcode10,由于iOS12移除了libstdc++.6.0.9,所以好的办法就是把这个库用libc++替换掉。但是项目中有的第三方的静态库里面使用到了,并且还没来得及修复这个问题,实在是没得什么好办法,所以就暂时把Xcode9中的libstdc++移动到了Xcode10对应目录下,之后再处理了。找到lib文件夹:把libstdc++.6.0.9.tbd 和libstdc++.6.tbd 复制进去以下两个路劲就可以了
路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
libstdc++.6.0.9.tbd 和libstdc++.6.tbd
链接: https://pan.baidu.com/s/17U3lo-3APJxsjp_RieYC4A 提取码: 1b4s
暂时遇到这两个bug,如有其它bug,在更新。
================================更新==========================================
今天将Xcode更新到10.3又出现上面的问题了 但是上面的解决方法不奏效 现在找到以下解决方法
①在RuntimeRoot的lib里面增加libstdc++.6.0.9.dylib,libstdc++.6.dylib,libstdc++.dylib,路径如下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/(下文有进入目录方法)
②在iPhoneOS.sdk的lib里面增加libstdc++.6.0.9.tbd,libstdc++.6.tbd,libstdc++.tbd,路径如下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
③在iPhoneSimulator.sdk的lib里面增加libstdc++.6.0.9.tbd,libstdc++.6.tbd,libstdc++.tbd,路径如下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/