
技术文章
Xcode 添加新 Target?别忘了这两个文件
关于在 Xcode 中添加新 target 时的一些本地化提示
3.1万次点击2分钟阅读
添加新 Target?别忘了这两个文件
在处理多 target iOS/macOS 项目时,添加新 target 通常意味着重新配置资源和构建设置。然而,有两个文件很容易被忽视。忘记将它们包含在新 target 中可能会导致缺少本地化和损坏的用户界面文本:
Localizable.xcstringsInfoPlist.xcstrings
1. 这些文件的作用
Localizable.xcstrings
存储通过NSLocalizedString和类似 API 在项目中使用的本地化字符串。
如果此文件未包含在新 target 中,运行时本地化文本将丢失——用户将看到原始键或回退语言。InfoPlist.xcstrings
存储Info.plist中键的本地化值,例如应用名称 (CFBundleDisplayName) 和权限描述 (NSCameraUsageDescription、NSMicrophoneUsageDescription等)。
没有它,当设备语言更改时,系统级文本不会更改,从而造成不一致的用户体验。
2. 为什么容易忘记
当你在 Xcode 中创建新 target 时,它会生成一个新的 Info.plist 文件,但不会自动将 .xcstrings 文件包含在 target 的资源成员资格中。
即使你的项目已有本地化资源,新 target 也不会继承它们——你必须手动添加。
3. 如何正确添加它们
- 在 Xcode 的项目导航器中,找到
Localizable.xcstrings和InfoPlist.xcstrings。 - 选择每个文件并在右侧打开文件检查器。
- 在 Target Membership 下,勾选你的新 target 的复选框。
- 清理并重建项目,以确认新 target 可以读取本地化字符串。
💡 专业提示:
如果你管理多个 target,请在创建新 target 后立即检查 .xcstrings target 成员资格,以避免以后调试缺少的翻译。
4. 常见陷阱
- 应用名称未本地化
可能是因为InfoPlist.xcstrings未包含在 target 中。 - UI 部分显示错误的语言
通常是由于Localizable.xcstrings未添加到 target 中造成的。 - 问题仅在某些设备上出现
如果 target 是特定平台的 (iOS/macOS) 且.xcstrings成员资格不一致,可能会发生这种情况。
5. 总结
无论你是为特定区域构建功能还是为不同平台打包,手动将 Localizable.xcstrings 和 InfoPlist.xcstrings 添加到新 target 的成员资格应该是每次创建新 target 时的检查清单项目。
这是一个可以防止重大本地化错误并保持用户体验一致性的小步骤。

