1. Multiple commands produce
1  | 
  | 
报错原因:重复
方案一
修改 Xcode 的配置暂时解决了编译报错的问题。
Xcode -> File -> Workspace settings -> Build System,选择 Legacy Build System 。
方案二
- 选择打开所在的项目
Target->Build Phases->Copy Bundle Resources - 删除报错的那些文件
 
2. library not found for -lstdc++.6.0.9
Xcode10不支持libstdc++系列的库了、需要删掉并且换成libc++系列的库。有些第三方由于没有更新,会牵扯到这个库,所以运行后报错。
方案一
打开Build Phases -> Link Binary With Libraries,删除lstdc++.6.0.9依赖
有可能还有删除
Build Setting->Other Linker Flags里的-l"stdc++.6.0.9"
但是现在部分第三方SDK依旧要依赖于lstdc++.6.0.9.tbd动态库,如果对代码进行改动或者修改 Xcode 的配置,可能会造成其他问题,例如在Xcode9.4上再次运行的时候可能会出现报错等等。
方案二
最简单解决该问题的方法就是从 Xcode9.4 中找到动态库lstdc++.6.0.9.tbd、libstdc++.6.tbd、libstdc++.tbd文件复制到 Xcode10 下就可以完美解决问题。
真机
1
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/
模拟器
1
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/
3. ld: symbol(s) not found for architecture x86_64
前面两个问题解决后,就遇到了这个问题,目前,在模拟器运行的时候会报这个错误,而使用真机运行的话没有问题,猜测应该是iOS12 模拟器的问题。
1  | ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/usr/lib/libstdc++.6.0.9.tbd, missing required architecture x86_64 in file /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/usr/lib/libstdc++.6.0.9.tbd (3 slices)  | 
