支持 Xcode 10.1 或以下版本在 iOS 12.3 上进行真机测试的解决方案

05/17/2019

问题的发生​

Apple 在北京时间 5 月 14 日凌晨发布了 iOS 12.3 等系统更新。

一方面,iOS 12.3 更新优化了系统整体流畅性,进行了一系列功能改进[1],最重要的——带回了体验更流畅、观感更舒适的后台任务动画。这些原因让我对这次更新非常期待,阶段性结束了一系列产品需求后,我就把自己的主力机 iPhone XS 升级到了 iOS 12.3。

另一方面,Xcode 在上一个更新周期 (即 Xcode 10.2) 中就不再支持 Swift 3.x。目前我工作中接触的工程绝大多数采用 Swift 3.2 和 Objective-C 混编,少部分升级到了 Swift 4.0,还有极少部分是纯 Objective-C 工程。上一个更新周期,我提取了 Xcode 10.2 中关于 iOS 12.2 的 device support 文件放入老版本的 Xcode 中,算是解决了 IDE 和设备系统不兼容的问题。

这次,在 Xcode 版本没有更新的情况下,为了能够在 iOS 12.3 系统的设备上做真机测试,Xcode 的做法是在 10.2.1 版本上在 IDE 层级上与 iOS 12.2 共用同一套 device support 文件,但是这种方法在 Xcode 10.1 上是失效的。​

问题的解决​

错误的尝试:

将 iOS 12.2 的 device support 复制一份并重命名为”12.3(16F156)”,真机测试后发现并没有生效。

有效的方案:

修改 device support 中的数字签名,重命名文件夹为”12.3(16F156)”。

修改后的文件的下载链接: https://zhr.moe/wp-content/uploads/2019/05/12.3-16F156.zip

使用方法:解压后将文件夹放入 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport ,并重新启动 Xcode。

 

[1] 关于 iOS 12.3 的功能改进参考: https://applech2.com/archives/20190514-apple-ios-12-3-now-available.html ; 关于 iOS 12.3 的安全性内容参考: https://support.apple.com/zh-cn/HT210118