← All posts

April 12, 2026

Adding a New Xcode Target? Don't Forget These Two Files

Xcode iOS macOS

2026/04/13 · Technical Article · ~2 min read

When working on multi-target iOS/macOS projects, adding a new target usually means reconfiguring resources and build settings. However, there are two files that are easy to overlook. Forgetting to include them in the new target can lead to missing localizations and broken UI text:

  • Localizable.xcstrings
  • InfoPlist.xcstrings

1. What These Files Do

  • Localizable.xcstrings Stores the localized strings used throughout the project via NSLocalizedString and similar APIs. If this file isn’t included in the new target, runtime localized text will be missing — users will see raw keys or a fallback language.
  • InfoPlist.xcstrings Stores localized values for keys in Info.plist, such as the app name (CFBundleDisplayName) and permission descriptions (NSCameraUsageDescription, NSMicrophoneUsageDescription, etc.). Without it, system-level text won’t change when the device language changes, creating an inconsistent user experience.

2. Why It’s Easy to Forget

When you create a new target in Xcode, it generates a new Info.plist file, but it does not automatically include the .xcstrings files in the target’s resource membership. Even if your project already has localization resources, the new target won’t inherit them — you have to add them manually.

3. How to Add Them Correctly

  1. In Xcode’s Project Navigator, locate Localizable.xcstrings and InfoPlist.xcstrings.
  2. Select each file and open the File Inspector on the right.
  3. Under Target Membership, check the checkbox for your new target.
  4. Clean and rebuild the project to confirm the new target can read the localized strings.

💡 Pro tip: If you manage multiple targets, check the .xcstrings target membership immediately after creating a new target to avoid debugging missing translations later.

4. Common Pitfalls

  • App name not localized Likely because InfoPlist.xcstrings isn’t included in the target.
  • Parts of the UI show the wrong language Usually caused by Localizable.xcstrings not being added to the target.
  • The issue only appears on some devices Can happen if the target is platform-specific (iOS/macOS) and .xcstrings membership is inconsistent.

5. Summary

Whether you’re building a feature for a specific region or packaging for different platforms, manually adding Localizable.xcstrings and InfoPlist.xcstrings to the new target’s membership should be a checklist item every time you create a new target. It’s a small step that prevents major localization bugs and keeps the user experience consistent.