美文网首页我的iOS开发历程
关于Xcode10适配的坑以及打包出现的BUG

关于Xcode10适配的坑以及打包出现的BUG

作者: 又是一个程序猿 | 来源:发表于2018-09-19 20:06 被阅读35次

    一、由于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 的话,就会发现他们的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了。


    image.png

    其他BUG目前正在查找中,欢迎分享交流。

    相关文章

      网友评论

        本文标题:关于Xcode10适配的坑以及打包出现的BUG

        本文链接:https://www.haomeiwen.com/subject/tynunftx.html