适配 iOS 12

一、 libstdc++ 库
项目用到了c++,依赖了libstdc++.tbd和libstdc++.6.0.9.tbd,导致整个工程编译不通过,报出Undefined symbols,C++ 的 List 找不到了,原因是苹果在XCode10和iOS12中移除了libstdc++这个库,由libc++这个库取而代之,苹果的解释是lib转载自斗玩网stdc++已经标记为废弃有5年了,建议大家使用经过了llvm优化过并且全面支持C++11的libc++库。
网上看到其他兄dei用Xcode9里面的导入到Xcode10

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/libstdc++.* /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/

拷贝过去后,你就可以在新XCode10下面看到libstdc++了,放心的添加到工程里

显然,这方法并不是我们老中医的套路
正确解决办法

如果你自己的业务模块使用了libstdc++,那么就把模块代码重新调整为依赖libc++,然后重新检查是否存在问题,重新编译

如果你引用的三方库使用了libstdc++,那么向三方库寻求支持,进行升级

https://juejin.im/post/5b1634f0f265da6e61788998

你可能感兴趣的:(IOS,iOS12)