Xcode版本:Version 10.0 (10A254a)
新的Xcode运行工程发现会报错:ld: library not found for -lstdc++ 。 这是因为苹果去掉了lstdc++.6.0.9.tbd动态库。
虽然有临时的解决方案:把xcode9里的这个动态库人为复制到xcode10里,但是对于模拟器运行还是报错
我的解决办法:
1.将Other Linker Flags 中的-lstdc++删掉
2.将C++ Standard Library 的值由libstdc++改为libc++
这时运行会有大量C++的报错
3.找到图中圈起来的报错的库 移出工程
再运行报的的我们自己写的代码引用那些库的错
4找到报错的代码 用条件编译
#if RUN_IN_XCODE10_WITHOUT_CPLUS_IN_SIMULATOR//1
#else
[[HCIAsrRecorderManager sharedRecorder] startRecorder:asrInitConfig andConfig:asrRecogConfig];
#endif
然后就可以正常运行了
5.进行 机型判断与适配
iPhoneXS 和 iPhoneX 屏幕大小一样不需要改动
iPhoneXR 和 iPhoneXSMax 虽然屏幕尺寸不一样 但是代码里面都是 414 * 896
在原来的iPhoneX适配基础上加上一句就可以
原来的
#define IsIphoneX ((((SCREEN_WIDTH == 375) && (SCREEN_HEIGHT_DEVICE_NEW == 812) )) ? 1 : 0)
现在的
#define IsIphoneX ((((SCREEN_WIDTH == 375) && (SCREEN_HEIGHT_DEVICE_NEW == 812) ) || \
((SCREEN_WIDTH == 414) && (SCREEN_HEIGHT_DEVICE_NEW == 896) )) ? 1 : 0)
ok 适配结束