昨天才更新的xcode,事實證明,還真是自己給自己挖坑。剛更新完,嘗試運行項目,然后就崩潰了。原因如下:
1
然后百度,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什么什么亂七八糟的,就簡單的更新一下第三方,什么都解決了。
當然,如果你們公司是自己封裝的私有靜態庫,那就更新靜態庫吧,如果不更新,那就采用最上面的那種方法吧。
希望能幫到你。