如何永久修改所有iOS模拟器的系统语言与区域?解决Xcode更新重置问题
永久设置Xcode模拟器默认语言/区域的解决方案
一、修改Xcode模拟器模板(新建模拟器自动生效)
Xcode更新后会重置模拟器模板,直接修改模板文件可让所有新创建的模拟器默认使用en_BZ:
- 定位到对应iOS版本的模拟器运行时配置文件(路径随iOS版本变化,需根据实际版本调整),以iOS 17为例:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.simruntime/Contents/Resources/RuntimeRoot/System/Library/CoreServices/SystemVersion.plist - 先复制该文件做备份,防止操作失误。
- 编辑原plist文件,找到
AppleLanguages和AppleLocale字段:AppleLanguages为数组类型,将第一个元素改为en_BZAppleLocale为字符串类型,直接设置为en_BZ
- 重启Xcode,之后新建的模拟器会自动应用该语言与区域设置。
二、批量修改现有模拟器(规避Xcode14崩溃问题)
针对Xcode14手动修改语言触发崩溃的bug,使用xcrun simctl命令行工具更安全,还能批量处理:
- 列出所有可用模拟器的UDID与名称:
xcrun simctl list devices - 对单个模拟器执行配置命令:
xcrun simctl configure <模拟器UDID> --locale en_BZ --language en_BZ - 批量处理所有模拟器可使用Shell脚本:
保存为#!/bin/bash for udid in $(xcrun simctl list devices | grep -E "[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}" -o); do xcrun simctl configure $udid --locale en_BZ --language en_BZ echo "配置模拟器 $udid 完成" doneset_simulator_lang.sh,赋予执行权限后运行即可。
三、Xcode更新后的重复操作处理
Xcode每次更新都会覆盖模拟器模板文件,建议:
- 备份修改后的
SystemVersion.plist文件 - 更新Xcode后,直接将备份文件替换到对应路径,无需重复编辑
内容的提问来源于stack exchange,提问作者blackjacx
相关产品推荐
相关产品推荐

