一脓匿、由于2018年新出了3款iPhone淘钟,分別是XS、XR陪毡、XS Max米母,因此我們要考慮適配問題。
適配的iPhoneX 的分辨率或pt:2436 * 1125 毡琉、 pt: 812 * 375
iPhoneXr的分辨率或pt:1792 * 828 铁瞒、 pt: 896 * 414
iPhoneXs 的分辨率或pt: 2436 * 1125 、 pt: 812 * 375
iPhoneXs Max 的分辨率或pt:2688 * 1242 桅滋、 pt: 896 * 414
這里請注意慧耍,如果你在項目中使用的是分辨率適配的iPhone X的話,對于今年的XR和XS Max虱歪,也需要進行適配蜂绎。
([[UIScreen mainScreen]bounds].size.width * [UIScreen mainScreen].scale == 1125 && [[UIScreen mainScreen]bounds].size.height * [UIScreen mainScreen].scale == 2436)? YES : NO ;
如果你使用的是屏幕高度來進行適配的話,name恭喜你笋鄙,你可以省掉大部分的適配邏輯师枣。因為如果你打印了iPhone XR和iPhone XS Max 的話,就會發(fā)現(xiàn)他們的UIScreen.main.bounds.size都等于(375,812)萧落。
public let IS_IPHONE_X = UIScreen.main.bounds.height == 812
二践美、在進行打包的時候洗贰,你可能會遇到這個錯誤
error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':
1) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
2) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
3) Target 'OptimalLive' has process command with input '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist
解決方案:
Open target -> Build phase > Copy Bundle Resource 移除 info.plist.
如果遇到了這個錯誤
library not found for -lstdc++.6
linker command failed with exit code 1 (use -v to see invocation)
原因是Xcode 10 取消了內置支持的 libstdc++ 庫,需等待某些第三方 SDK 修復陨倡。
解決方案:
1.通知第三方SDK敛滋,盡快更新適配。
2.找到未升級的Xcode9的libstdc++.6.0.9.tbd文件兴革,加入到自己的Xcode10對應的文件夾中绎晃。
如圖,隨便選擇一個lib庫杂曲,然后showInfinder將libstdc++.6.0.9.tbd拷貝到lib文件夾內庶艾,就可以解決這個BUG了。
其他BUG目前正在查找中擎勘,歡迎分享交流咱揍。