Xcode 10, Swift 4.2及iOS 12升级适配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xcode 10, Swift 4.2及iOS 12升级适配相关的知识,希望对你有一定的参考价值。

参考技术A 将开发环境升级到Xcode 10, Swift 4.2及ios 12后,工程里会出现许多错误。其中的很多错误,只需要点击它的小圆点,Xcode会自动帮我们修复,这些略去不谈。本文主要讲一下不能自动修复的错误。

最后,将目录b中的GRDB.framework/Modules/GRDB.swiftmodule中的所有内容复制到目录c中的对应位置。当前目录c中的GRDB.framework就是我们所需要的。
4)打包时不支持包含i386或者x86_64架构的包内容,所以还需要将它们去掉。这里使用的是如下脚本,是根据云信的脚本修改的(它的脚本在Xcode 10下不能正确工作)。

这样就完成了,最后提供一下参考的云信的脚本:
https://dev.yunxin.163.com/docs/product/IM%E5%8D%B3%E6%97%B6%E9%80%9A%E8%AE%AF/SDK%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/iOS%E5%BC%80%E5%8F%91%E9%9B%86%E6%88%90/%E9%9B%86%E6%88%90%E6%96%B9%E5%BC%8F

修改为:

参考: https://stackoverflow.com/questions/51616073/uiedgeinsetsinsetrect-has-been-replaced-by-instance-method-cgrect-insetby

这是因为它们在Swift 4.2中被改成变量了,改成下面这样:

以前工程里是这样写的,但现在不行了,必须写成

改成

参考: https://stackoverflow.com/questions/52413107/avaudiosession-setcategory-swift-4-2

那么解决方案有两个:
a. 使用Xcode 9.4.1打包提交App
b. 将可支持的最低iOS版本提到iOS 9.3
参考:
https://stackoverflow.com/questions/52364231/our-app-crashed-in-ios-9-which-upload-by-xcode-10

以上是关于Xcode 10, Swift 4.2及iOS 12升级适配的主要内容,如果未能解决你的问题,请参考以下文章

swift 4.2 的 Xcode 10 视觉识别问题

苹果正式发布 Xcode 10:新 SDKSwift 4.2深色模式

Firebase Deeplink 不触发应用程序:continueUserActivity:restorationHandler,Swift 4.2 Xcode10。

Swift 4.2 新特性(译)

在 Swift 4.2 Xcode 10 中使用动作扩展从 Safari 共享 PDF 文件失败

是否可以将Swift 4.1添加到Xcode 10中