Xcode
升级至10.0
后运行工程出现错误提示:library not found for -lstdc++.6.0.9
问题排查
别慌首先我们去备份机器中打开老的Xcode 9.x
查找这个库是否是系统自带的,选择添加新库进行查找,如下图所示。如果没有请直接看临时解决办法。
可以确定该库为系统自带,而新的Xcode
根据错误提示是没有该库,那我们就手动移植过去,根据上图提示,打开终端进入库的位置,直接拷贝至新Xcode
来解决问题。
解决办法
- 拷贝旧
Xcode
中的库。没有的可以直接去这里下载地址GitHub
- 真机路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOSxxx.sdk/usr/lib
- 模拟器路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulatorxxx.sdk/usr/lib
- 添加至
Xcode10.0
中。
- 真机路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/usr/lib
- 模拟器路径
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.0.sdk/usr/lib
替换完成后在模拟器iOS10.0以上运行会出现一个错误:
Reason: no suitable image found. Did find:
/usr/lib/libstdc++.6.dylib: mach-o, but not built for iOS simulator
这里还需要拷贝旧Xcode
中的/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libstdc++.6.0.9.dylib
并改名为libstdc++.6.dylib
后粘贴到新Xcode
同样的位置。(注意在/Profiles/Runtimes/iOS.simruntime
这里时需要右键显示包内容)
注意这里xxx.sdk根据上图Xcode提示的来