Xcode 添加新 Target?别忘了这两个文件
技术文章

Xcode 添加新 Target?别忘了这两个文件

关于在 Xcode 中添加新 target 时的一些本地化提示

3.1万次点击2分钟阅读

添加新 Target?别忘了这两个文件

在处理多 target iOS/macOS 项目时,添加新 target 通常意味着重新配置资源和构建设置。然而,有两个文件很容易被忽视。忘记将它们包含在新 target 中可能会导致缺少本地化和损坏的用户界面文本:

  • Localizable.xcstrings
  • InfoPlist.xcstrings

1. 这些文件的作用

  • Localizable.xcstrings
    存储通过 NSLocalizedString 和类似 API 在项目中使用的本地化字符串。
    如果此文件未包含在新 target 中,运行时本地化文本将丢失——用户将看到原始键或回退语言。
  • InfoPlist.xcstrings
    存储 Info.plist 中键的本地化值,例如应用名称 (CFBundleDisplayName) 和权限描述 (NSCameraUsageDescriptionNSMicrophoneUsageDescription 等)。
    没有它,当设备语言更改时,系统级文本不会更改,从而造成不一致的用户体验。

2. 为什么容易忘记

当你在 Xcode 中创建新 target 时,它会生成一个新的 Info.plist 文件,但不会自动将 .xcstrings 文件包含在 target 的资源成员资格中。
即使你的项目已有本地化资源,新 target 也不会继承它们——你必须手动添加。

3. 如何正确添加它们

  1. 在 Xcode 的项目导航器中,找到 Localizable.xcstringsInfoPlist.xcstrings
  2. 选择每个文件并在右侧打开文件检查器
  3. Target Membership 下,勾选你的新 target 的复选框。
  4. 清理并重建项目,以确认新 target 可以读取本地化字符串。

💡 专业提示:
如果你管理多个 target,请在创建新 target 后立即检查 .xcstrings target 成员资格,以避免以后调试缺少的翻译。

4. 常见陷阱

  • 应用名称未本地化
    可能是因为 InfoPlist.xcstrings 未包含在 target 中。
  • UI 部分显示错误的语言
    通常是由于 Localizable.xcstrings 未添加到 target 中造成的。
  • 问题仅在某些设备上出现
    如果 target 是特定平台的 (iOS/macOS) 且 .xcstrings 成员资格不一致,可能会发生这种情况。

5. 总结

无论你是为特定区域构建功能还是为不同平台打包,手动将 Localizable.xcstrings  InfoPlist.xcstrings 添加到新 target 的成员资格应该是每次创建新 target 时的检查清单项目。
这是一个可以防止重大本地化错误并保持用户体验一致性的小步骤。

相关文章