Xcode14 下载 watchOS Simulator 失败

Xcode14 下载 watchOS Simulator 失败

Xcode14 为了缩减体积, 将部分组件并未内置在安装包中. 当工程添加了 Watch App 支持, 开始编译时 Xcode 会自动下载 Apple Watch 的模拟器, 否则无法继续编译. 但是使用 Xcode内置的下载又经常下载失败, 报错是网络超时.

此时可以移除 Watch 相关的 Target 来临时解决问题, 但是最终还是需要下载模拟器, 再次反复经历失败-下载-失败.
Xcode 内置的下载很容易失败, 身边统计学基本都需要下载 4/5 次才能成功(下载速度快, 但是下载到一半就莫名其妙超时了), 而且下载不支持断点续传, 每次重新下载, 导致效率十分低下.

我们可以直接在苹果开发者网站下载对应的模拟器, 然后执行如下

1
2
3
4
5
6
sudo xcode-select -s /Applications/Xcode.app/

xcodebuild -runFirstLaunch

// 路径自行修改下
xcrun simctl runtime add "~/Downloads/watchOS_9.1_Simulator_Runtime.dmg"

simctl 会校验 dmg 文件, 并将模拟器放到合适的位置, 执行完成之后 Xcode 设置页会成这样

解决办法参考链接 Install and manage Simulator runtimes from the command line

苹果开发网站找不到自己想要下载的模拟器怎么办?

苹果开发者网站经常不一定有我们想要下载的包, 难道还是回去死磕 Xcode 自带的下载吗? 我们可以使用命令行获取下载地址, 然后自行下载

  1. 先关掉 Xcode (cmd + Q)
  2. 命令行启动 XCode (使用 Mac 自带的 Terminal 或者 iterm2 都可以), 命令如下
    1
    /Applications/Xcode.app/Contents/MacOS/Xcode
  3. 在 Xcode 中下载该模拟器(Settings->Platform 页面下自行选择)
  4. 在下载页面取消下载(取消下载会触发失败日志)
  5. 在命令行失败日志中获取下载地址, 类似这样
    1
    2023-12-25 18:23:35.903 Xcode[52215:1841435]  DVTDownloadable: Download Cancelled. Downloadable: https://devimages-cdn.apple.com/downloads/xcode/simulators/com.apple.pkg.iPhoneSimulatorSDK15_0-15.0.1.1633542405.dmg.
  6. 使用浏览器下载这个https://devimages-cdn.apple.com/downloads/xcode/simulators/com.apple.pkg.iPhoneSimulatorSDK15_0-15.0.1.1633542405.dmg.链接就好(下载别的模拟器链接不一样)
  7. 文件移到 ~/Library/Caches/com.apple.dt.Xcode/Downloads/目录中, 像下面这样, 注意自己改下文件名
    1
    mv com.apple.pkg.iPhoneSimulatorSDK15_0-15.0.1.1633542405.dmg ~/Library/Caches/com.apple.dt.Xcode/Downloads/
  8. 回到 Xcode, 重新下载这个模拟器, 就会跳过下载直接安装了
-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道