XCode 7.3.1 导入本地化崩溃

Posted

技术标签:

【中文标题】XCode 7.3.1 导入本地化崩溃【英文标题】:XCode 7.3.1 importLocalization crash 【发布时间】:2016-08-02 09:30:41 【问题描述】:

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

--- xcodebuild2016-04-13 11:56:20.933 xcodebuild[3927:40233] [MT] DVTAssertions:/Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-10183.3/IDEFoundation 中的断言失败/Localization/IDELocalizationWork.m:177 详细信息:(组)不应为零。 对象: 方法:+groupStreamFromFileReference:语言: 线程:number = 1,name = main 提示:无 回溯: 0 -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:](在 DVTFoundation 中) 1 _DVTAssertionHandler(在 DVTFoundation 中) 2 _DVTAssertionFailureHandler(在DVTFoundation中)

谁能给我一些建议来克服这个错误?

【问题讨论】:

【参考方案1】:

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

输入:

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

步骤: 1. 选择项目并执行本地化导出(Editor > Export for Localization..)。 2.在我的情况下(但这可能只是导出的错误,不包含标签),我必须编辑导出的en.xliff文件并在每个<file .. target-language="en">块的末尾添加target-language="en"。 3. 导入文件(Editor > Import Localizations..)

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

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

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

【讨论】:

以上是关于XCode 7.3.1 导入本地化崩溃的主要内容,如果未能解决你的问题,请参考以下文章

infoPlist.strings 读取失败:无法读取数据,因为它的格式不正确

使用 Swift 不工作的 pod 解析崩溃报告导入

Xcode 导入本地 Swift 包并从应用程序构建

使用断点进行调试时,Xcode 7.3.1 使用 swift 代码崩溃

iOS 在 Xcode UITest 中测试本地文件导入/打开

使用 Xcode 8.1 导入 .xliff 文件后清空 Localizable.strings