I've got an internationalized iPhone project. In the various ${lang}.lproj/InfoPlist.strings
files I've got a single key, CFBundleName = "My App Name"
.
That's working fine for a single target, but I can't make it work for multiple targets.
I'd like to have several translated InfoPlistMyApp.strings
files for the main target, plus several InfoPlistMyAppLite.strings
files for the lite version. But I can't figure out how to set it up. The InfoPlist.strings
name seems to be set in stone, so I can't replace it dynamically.
Any ideas?
Go to project's settings in the Project Navigator panel. Under the Targets sections, right click the existing target and select Duplicate to copy your existing target. 2. Xcode will ask you if your new target is for iPad development.
Add a New Target to Your Project To add a new target: Choose File > New > Target. Select the platform for the new target. Choose a starting template.
A Target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. An Xcode scheme defines a collection of targets to build, a configuration to use when building, and a collection of tests to execute.
Turns out this is quite easy, if laborious. You can have several InfoPlist.strings, one-enabled-per-target, and they can each be internationalized, as long as each set is in a different Xcode group.
Set up a directory structure like this:
.../AppName/ en.lproj/InfoPlist.strings <-- Contains CFBundleDisplayName it.lproj/InfoPlist.strings <-- ... ... .../AppNameLite/ en.lproj/InfoPlist.strings <-- ... it.lproj/InfoPlist.strings <-- ... ...
Import those files into Xcode groups, so it looks like this:
Right-click "Groups & Files" (top left of Xcode) and make sure "Target Membership" is visible, then go through your targets, checking the the right set of strings is enabled for each.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With