Here's how you can have different InfoPlist.strings for different build configurations in the same target.
- In your Build Settings:
- Specify a different Info.plist File
(INFOPLIST_FILE)
for each configuration.
- Set Adjust Strings File Names for Info.plist (
STRINGS_FILE_INFOPLIST_RENAME
) to Yes
. On Xcode 14, it was set to Yes
by default.
- Create
.strings
files with the base name of your Info.plist filename
+ Plist.strings
.
- For example, if your Info.plist filename is
Beta-Info.plist
, your strings file should have the name Beta-InfoPlist.strings
. Make sure you include all of these strings file to your build.
- Do not include an
InfoPlist.strings
file in your target.
The key to making this work is Adjust Strings File Names for Info.plist in the Build Settings Reference.
Adjust Strings File Names for Info.plist.
Setting name: STRINGS_FILE_INFOPLIST_RENAME
If enabled, renames .strings files whose basename matches that of the target’s Info.plist file, to InfoPlist.strings in the built product.
Example
Here's an example in my app which has 3 different variants (AdSupported, AdSupported-Dev, Pro) that require different app names.
- Build settings. (I have debug & release configurations for each variant, but you could also do this with just Debug / Beta / Release.)

- Strings files. They are all included in my target.

- Info plist files. As usual, they are specified in the Build Settings and NOT included in my target.
