当我第一次开始 Apple 开发时,我开始了一个项目,并且可能在文件结构中犯了一些有趣的错误,这有助于导致这个问题。也就是说,我最近根据 WWDC 2012 的一些示例代码将我的 Xcode 项目切换到了工作区。
举例来说,假设 localizable.strings 文件中有一个键值对:“someStringThatShouldBeLocalized”=“root view title”
原始的“物理”结构类似于以下内容:
- iOS
-- localizable.strings
-- core data models & classes
工作区结构类似于以下内容:
- iOS
- Mac OSX
- Shared
-- core data models & classes
-- en.lproj
--- localizable.strings
localizable.strings 文件以及核心数据模型和类在所有三个项目中都被引用。当我构建并运行它们中的任何一个时,它都会按预期工作:
- 使用正确的数据模型和类,并且
- 使用了正确的本地化字符串 - “根视图标题”
但是,当我从 App Store 模拟更新(安装商店当前可用的应用程序,然后从 Xcode 运行或从源代码管理的标记副本安装)时,它无法按预期工作:
- 使用了正确的数据模型和类,但是
- 不正确/没有使用本地化字符串,我看到的只是调用 NSLocalizedString(key, comment) -“someStringThatShouldBeLocalized”的键
同样,仅在从以前安装的应用程序版本实际更新时才会出现问题。
谢谢。