XCode 7.3.1 importLocalization 崩溃

XCode 7.3.1 importLocalization crash

有一个包含框架的复杂项目,我们在使用 export/import XLIFF 文件脚本时开始遇到这个问题。问题实际上与导入脚本有关,它引发了下一个错误:

--- xcodebuild2016-04-13 11:56:20.933 xcodebuild[3927:40233] [MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-10183.3/IDEFoundation/Localization/IDELocalizationWork.m:177
Details: (group) should not be nil.
Object:
Method: +groupStreamFromFileReference:language:
Thread: {number = 1, name = main}
Hints: None
Backtrace:
0 -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
1 _DVTAssertionHandler (in DVTFoundation)
2 _DVTAssertionFailureHandler (in DVTFoundation)

任何人都可以建议我解决这个错误吗?

花了 1 天时间发现 Apple 修复了 7.3.1 中的一些本地化崩溃,同时引入了其他错误。因此,使用 7.2.1 命令行工具测试相同的脚本非常有效。但这并没有停止挖掘和寻找解决方案,所以这里是流程,它使我的脚本再次 运行 正确。

输入:

  • 只有代码本地化的项目;
  • 几个 subprojects/frameworks 每个都有一个目标二进制 + 目标单元测试;
  • 确保从您的项目中删除任何 Localizable.strings 个文件

步骤: 1. Select 项目并执行本地化导出(编辑器 > 本地化导出..)。 2.在我的例子中(但也许这只是导出的一个错误,它不包含标签),我不得不编辑导出的 en.xliff 文件并在每个 [=] 的末尾添加 target-language="en" 13=]块。 3. 导入回文件(编辑器 > 导入本地化..)

但这还不是全部...似乎第一次导出不会一直导出所有内容(错误),因此您可能不得不 运行 多次执行相同的过程。每次我再次导出时,XLIFF 文件都包含一个额外的本地化块。

例如,有一个应用程序目标+单元测试目标的项目,第一个导出过程生成了 3 个文件(2 InfoPlist.strings + 1 Localizable.strings)。下一次,导出已经生成了 4 个文件 (2 InfoPlist.strings + 2 Localizable.strings).

每当从 XCode 导出时,停止添加新的本地化文件,我的脚本就会开始工作,我可以重新使用它们。