如何使用iPhoneXR/XSMAX模擬器進行螢幕適配
阿新 • • 發佈:2019-01-22
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 適配結束