昨天才更新的xcode,事实证明,还真是自己给自己挖坑。刚更新完,尝试运行项目,然后就崩溃了。原因如下:
然后百度,google,得知结论是:
Xcode10:
libstdc++
、libstdc++.6
、libstdc++6.0.9
被替换合并成为 libc++了(我是这么认为的)。
-
先说网上给的方法是:
去Xcode 9里面的
真机路径
/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
分别复制一份,
然后分别粘贴到对应的Xcode 10 的
真机路径和
/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/iPhoneSimulator.sdk/usr/lib/
-
模拟器编译就能成功,但是会出现下面这样的错误
2
可能是XCode10自带的iOS12模拟器的问题,在XCode10中安装iOS11的模拟器运行环境,然后切换到iOS11模拟器运行,就OK了
-
使用iOS12的真机运行,没有啥太大的问题
-
再说说在我的项目当中的解决方法吧。
我的APP项目中,唯一用到libstdc++6.0.9
的地方就是高德地图
,然后我去pod search 了一下,发现AMap3DMap
最新版本是6.4.0,果断更新了一下(pod 'AMap3DMap','~>6.4.0'
),然后.....什么问题都没有了,没有所谓的Xcode9复制粘贴到Xcode10什么什么乱七八糟的,就简单的更新一下第三方,什么都解决了。
当然,如果你们公司是自己封装的私有静态库,那就更新静态库吧,如果不更新,那就采用最上面的那种方法吧。
希望能帮到你。
网友评论