刚升级的xcode 10遇到了两三个小问题,写下来记录一下
1. xcode 10取消了内置支持的 libstdc++ 库
xcode10取消了内置支持libstdc++库,然而咱们项目里用的有些sdk里边必须用这个库,这样问题就来了
解决这个问题的最终方案肯定是等这些sdk升级新版本之后,支持Xcode 10这一新特性,然后咱们去升级新的sdk,这样就完美解决了。
现实问题是,大部分sdk现在并没有去完美的适配Xcode 10,这时候对于咱们来说就需要一个折中的方案了,步骤如下:
a、去老的Xcode版本里,
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib,
这个路径下,把libstdc++.tbd,libstdc++.6.tbd, libstdc++.6.0.9.tbd 这三个文件拷贝下来
b、在来到Xcode 10中,同样的路径下,把这三个文件粘贴进去就完事了
需要注意的是,这个步骤做完之后,你会发现项目在模拟器上依然无法运行
这是因为对于模拟器来说由于iOS12的模拟器将libstdc++.6.tbd & libstdc++.6.0.9.tbd已经删除,即使复制了文件,依然会报错
所以你就只能先凑合着跑真机了,等新版本sdk完美适配Xcode 10之后再来根治这个问题。
2. xcode 10对于重复文件的检测
举个例子来说,项目里有两张重复的图片时,这时候就会报错。不过这个问题好解决,把重复的删掉,就OK了
3. 改回之前的运行环境
删除重复文件时有的可能都删除不了,这时候就去把运行环境改到之前的环境,操作如下
xcode--file--Workspace Settings--Build System--legacy Build System
4. 对于使用cocoapods的用户来说
新的Xcode环境还是需要重新pod install一下,这是我看网上这么说的,我就直接pod install了,所以不清楚如果不pod install会有啥情况发生