iOS12适配笔记(持续更新)

作者: a_只羊 | 来源:发表于2018-09-19 11:09 被阅读301次

    前言

    新的 XCode10发布了,迫不及待进行了升级,发现项目报错了,以下是一些错误及一些解决方法。

    错误集锦

    1. pod 管理的版本库报错

    由于Swift4.2一些新特性造成部分三方的库编译出错,比如Swift中的HandyJson库就因为Swift新版本特性造成错误,此时只需要更新对应的新版本库就好了,大部分三方库基本都已经对iOS12的做了新的适配了。

    image.png
    1. 文件重复报错,错误提示 multiple command produce xxxxxx

    在我的项目里面开源授权协议(即LICENSE文件)报错显示文件重复了,按照提示删除或者去除当前文件所在的Target中就能解决问题了

    1. 一些库由于使用了lstdc++.6.0.9造成找不到库文件错误(是因为iOS12去掉了lstdc++.6.0.9库导致的)
    缺少库 没有内容

    解决方案:

    • 方案一:使用成新的iOS12中的库文件进行开发适配,如果是第三方库用到了,等待三方库的iOS12适配更新
    • 方案二:可以通过导入iOS11中的lstdc++.6.0.9库作为临时解决方案

    以下是方案二的操作方法:

    1. 可以通过将XCode9中的lstdc++.6.0.9库导入到XCode10中,我已经将该库上传到了百度云,需要的话自取(文章最后链接)。
    2. 下载之后两个文件夹的文件都需要导入到 XCode10中,一个是模拟器库文件,一个是真机库文件
    需要添加的库

    真机库文件路径位置在 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib

    模拟器库文件路径在
    /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib

    添加之后,各自在对应的文件夹下制作一个lstdc++.6.0.9替身,替身名字为lstdc++.tbd,制作替身的目的是保证 lstdc++.tbd 的库的引用有效,他们实际上都共用一个实体库lstdc++.6.0.9

    最后重启 XCode,编译运行即可

    1. 关于XCode10上传的ipa包在iOS9系统上崩溃的问题

    这个问题是一个较为普遍的问题,苹果官方也在第一时间发布了XCode10.1beta2来修复这样的问题,目前只能靠新版本的XCode打包或者使用老版本的9.4.1打包来解决在iOS9上的崩溃问题了。

    XCode10.1beta版本发布note

    附录

    lstdc++.6.0.9库百度云链接:
    https://pan.baidu.com/s/1wT8oZv0eMGRBX-uPVSuffA
    提取码: 7mtb

    相关文章

      网友评论

        本文标题:iOS12适配笔记(持续更新)

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