近期在做一些适配相关的工作,在适配过程中踩到了一些坑。这是一篇水文,主要是记录 iOS 17 和 Xcode 15 适配过程中遇到的一些问题和解决方法。
1、Xcode 14 在 iOS 17 的真机上运行
一般来说Xcode和iOS系统匹配才能运行,但是有些时候不想升级Xcode但是想要在高版本的iOS真机上面调试项目。
首先从别人升级过Xcode的电脑上面拷贝 DeviceSupport
目录下对应版本的镜像文件过来就行了,目录如下:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
当然也有热心大佬整理了每个版本的镜像文件:https://github.com/JinjunHan/iOSDeviceSupport,这样就不必找一台电脑先升级Xcode了。
升级到iOS17之后以为也是这样的套路,到安装了Xcode 15的机器上面去拷贝文件的时候发现没有新增的iOS 17相关的镜像文件夹了。
在官方的论坛上面找到一段官方的回复:
iOS 17 beta requires Xcode 15 beta.
Copying files from a newer version of Xcode to an older version of Xcode for any purpose was never supported. That it worked for your needs was coincidental.
As the system evolves, any expectations for "how things work" could be made invalid, and this appears to be the case here.
Please use Xcode 15 beta to work with iOS 17 beta.
For earlier OS and Xcode releases, please refer to the Minimum requirements and supported SDKs for appropriate and supported combinations.
—Jason.
大意是从来就不支持拷贝 DeviceSupport 文件的方式支持不同版本间的运行,之前能生效都是巧合吧。刚好在帖子上面看到一位大神的回复,试了一下确实可行,具体的步骤如下:
(1) 命令行执行开启 DVTEnableCoreDevice 支持
defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled
(2) 在 Xcode 14 选择 (CoreDevice) 结尾的设备
注: 需要包含 16.4 及以上版本的 DeviceSupport,并重启Xcode
使用 Xcode 15 安装 ipa 报错
安装内测用的ipa文件,一般都是直接将ipa文件拖到Xcode就能安装。将ipa拖到红框即可
在Xcode 15 向 iOS 17的设备安装的时候会报错。
解决办法:
(1) 解压ipa(将ipa后缀改成zip)
(2) 拖拽Payload目录下的app文件到Xcode安装
总结: 就是将原来拖ipa的方式改为拖app的方式