Xcode命令行执行xcodebuild导出本地化截图找不到对应语言怎么办
问题原因
- 直接执行导出命令时,xcodebuild无法读取Xcode界面运行测试生成的缓存截图产物,必须显式指定测试运行生成的xcresult文件路径才能识别到截图
- Xcode界面可以正常导出,是因为界面会自动关联最近一次对应测试计划的运行产物,命令行无默认关联逻辑,需要手动指定
- 如果测试运行时没有指定对应荷兰语的运行参数,生成的截图也不会被标记为nl语言的资源,导出时自然无法匹配
解决步骤
- 先通过命令行执行对应测试计划的XCUITest,生成带荷兰语截图的xcresult产物,命令示例:
xcodebuild test \ -project 'test/test-inhouse.xcodeproj' \ -scheme '你的项目测试Scheme名' \ -testPlan '你配置了截图的测试计划名' \ -destination 'platform=iOS Simulator,name=iPhone 14,OS=16.4' \ -resultBundlePath './nl_test_result.xcresult' \ -testLanguage nl \ -testRegion NL
注意:
destination参数的设备类型、系统版本要和测试计划里配置的截图生成目标设备完全一致,否则会出现截图匹配失败的问题。
- 执行导出命令时额外添加
-resultBundlePath参数指定上一步生成的xcresult路径即可,命令示例:
xcodebuild -exportLocalizations \ -project 'test/test-inhouse.xcodeproj' \ -localizationPath localizations_output \ -exportLanguage nl \ -includeScreenshots \ -resultBundlePath './nl_test_result.xcresult'
额外注意事项
- 不需要引入任何第三方依赖,以上都是xcodebuild原生支持的参数
- 如果需要同时导出多语言截图,可多次执行第一步生成对应语言的xcresult,或者在测试计划里配置多语言并行测试,导出时指定对应xcresult即可
- 测试运行的
-testLanguage参数值要和导出时的-exportLanguage参数值完全匹配,荷兰语固定用nl即可,不需要用Dutch等英文名称
内容的提问来源于stack exchange,提问作者Sean Long
相关产品推荐
相关产品推荐

