Xcode 11 Simulator自定义模拟设备分辨率方法咨询
好问题!在Xcode 11及后续版本中,模拟器菜单确实只有预定义的Apple设备型号可选,但完全可以通过两种方式创建自定义分辨率的模拟设备,亲测有效(毕竟我自己也经常需要调试特殊分辨率的场景):
方法一:Xcode设备管理+手动修改配置文件
这个方法可视化操作更多,适合不太熟悉命令行的同学:
- 打开Xcode,点击顶部菜单栏的
Window > Devices and Simulators - 切换到
Simulators标签页,点击左下角的+号,新建一个自定义模拟器 - 在弹窗里随便选一个基础设备型号(比如iPhone 11),给它起个辨识度高的名字(比如「自定义分辨率测试机」),然后点
Create - 选中刚创建的模拟器,在右侧面板找到它的UUID(一串字母数字组合),记下来
- 打开Finder,按
Command+Shift+G,输入路径:~/Library/Developer/CoreSimulator/Devices/[刚才的UUID]/data/Library/Preferences/,替换掉[刚才的UUID]后回车 - 在这个文件夹里找到类似
com.apple.CoreSimulator.SimDeviceType.iPhone-11.plist的文件(文件名里的设备型号就是你刚才选的基础型号),用Xcode或者plist编辑工具打开它 - 找到
width和height字段,修改成你需要的像素分辨率(比如改成1200x2000) - 确保模拟器处于关闭状态,然后重新启动这个自定义设备,就能看到分辨率已经变成你设置的数值了
方法二:用命令行工具快速配置
如果习惯用命令行,这个方法更高效:
- 先创建一个自定义模拟器,替换命令里的设备型号和iOS版本为你需要的(Xcode11对应的iOS版本一般是iOS13):
xcrun simctl create "自定义分辨率设备" com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-13-0 - 列出所有模拟器,找到刚创建设备的UUID:
xcrun simctl list devices - 修改分辨率配置,把
[UUID]替换成你找到的UUID,1080和2340换成你想要的宽高:defaults write ~/Library/Developer/CoreSimulator/Devices/[UUID]/data/Library/Preferences/com.apple.CoreSimulator.SimDeviceType.iPhone-11.plist width 1080 defaults write ~/Library/Developer/CoreSimulator/Devices/[UUID]/data/Library/Preferences/com.apple.CoreSimulator.SimDeviceType.iPhone-11.plist height 2340 - 重启模拟器生效:
xcrun simctl shutdown [UUID] xcrun simctl boot [UUID]
注意事项
- 修改配置前一定要确保模拟器处于关闭状态,否则修改的内容会被模拟器覆盖
- Xcode版本更新后,配置文件的路径或字段可能有细微变化,但Xcode11及以上版本这个方法是稳定可用的
- 你之前找到的旧方法过时,主要是因为Xcode后续版本调整了模拟器的配置存储结构,所以那些旧路径和操作方式不再生效
内容的提问来源于stack exchange,提问作者Hykilpikonna




