如何使用iPhoneXR/XSMAX模拟器进行屏幕适配

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 适配结束

 

 

 

 


版权声明:本文为qq_15509071原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。