怎么样让Xcode14.3跑iOS17 beta的设备

背景

iOS17beta也发布了很长时间了,为了工程的稳定性,需要提前测试工程在高版本系统的是否会出现问题。其中一项就是需要在低版本Xcode中去本地跑高版本iOS设备,来定位高版本出现的问题。

问题

以往低版本Xcode要跑高版本iOS设备,只需要将/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport中对应的iOS版本添加进该目录就行,但是但是更新了xcode15之后发现,最新Xcode的DeviceSupport目录下并没有对应的ios17镜像文件。

Xcode15 beta的DeviceSupport目录:

官方的解释是:

With iOS 17+, we are using a new device stack (CoreDevice) to communicate with devices. With this new device stack, there is one DDI per platform (as opposed to per OS release). This same device stack will be shared across all versions of Xcode on your system, and installing a newer version of Xcode will update CoreDevice and its DDIs (just like how CoreSimulator is updated if you are familiar with that).

This effectively means that you now have a supported way of updating the device stack on your system to support newer target OS devices. With CoreDevice, you should be able to debug devices running future versions of iOS using Xcode 15. This may require first installing a newer Xcode in order to install newer CoreDevice and DDIs, so keep that in mind.

Of course, this also means there is a temporary hiccup in which the old unsupported path doesn't work, but the good news is that future-you will have a supported way of doing this which works out-of-the-box, no need to modify your Xcode.app.

也就是xcode15之后将会以CoreDevice的方式去对iOS设备进行兼容。 所有的Xcode设备共享一份CoreDevice和DDIs,这样在xcode15和之后版本中,只要装了最新版Xcode,所有版本的Xcode都能调试CoreDevice中兼容的iOS设备,也就是低版本Xcode也能直接兼容高版本ios设备,而无需去更改xcode中的目录。

解决问题

经测试,xcode14其实也兼容了CoreDevice的方案,只是默认是关闭的。

  1. 安装最新版macOS beta

  2. 下载xcode15 beta并安装(为了获取最新的CoreDevice)

  3. 执行命令(这一步的作用大概就是开启xcode14 的CoreDevice支持,使得xcode14能使用最新的CoreDevice。)

    shell 复制代码
    defaults write com.apple.dt.Xcode DVTEnableCoreDevice enabled

跑起来

操作系统是最新版beta,那xcode14就不能再用了 使用方式,应用程序->xcode14->显示包内容->contents->MacOS->Xcode 进程运行起来,选择需要执行的工程就OK了。 选择ios7的设备时,会有个CoreDevice的标识:

这样就能跑起来啦~

参考文档: developer.apple.com/forums/thre... stackoverflow.com/questions/7...

相关推荐
Digitally3 小时前
如何将大型音频文件从 iPhone 发送到不同的设备
ios·iphone
吴Wu涛涛涛涛涛Tao8 小时前
Flutter 实现「可拖拽评论面板 + 回复输入框 + @高亮」的完整方案
android·flutter·ios
搜狐技术产品小编202314 小时前
CAEmitterLayer:iOS 中创建炫酷粒子效果的魔法工具
macos·ios·objective-c·cocoa
00后程序员张1 天前
iOS App 混淆与资源保护:iOS配置文件加密、ipa文件安全、代码与多媒体资源防护全流程指南
android·安全·ios·小程序·uni-app·cocoa·iphone
咕噜签名分发冰淇淋1 天前
内测分发是什么?
ios
2501_916007472 天前
Transporter App 使用全流程详解:iOS 应用 ipa 上传工具、 uni-app 应用发布指南
android·ios·小程序·https·uni-app·iphone·webview
白玉cfc2 天前
【OC】单例模式
开发语言·ios·单例模式·objective-c
Digitally2 天前
比较 iPhone:全面比较 iPhone 17 系列
android·ios·iphone
2501_915909062 天前
HTTPS 错误解析,常见 HTTPS 抓包失败、443 端口错误与 iOS 抓包调试全攻略
android·网络协议·ios·小程序·https·uni-app·iphone