CFBundleLocalizations info.plist - How to put multiple languages

12,335

The plist editor in Xcode seems to insist that it should be a string... if you want an array, try opening the plist file in a text editor, and adding this after a value:

    <key>CFBundleLocalizations</key>
    <array>
        <string>English</string>
        <string>French</string>
    </array>

so your plist would look like this:

...
    <key>CFBundleExecutable</key>
    <string>${EXECUTABLE_NAME}</string>     
    <key>CFBundleLocalizations</key>
    <array>
        <string>English</string>
        <string>French</string>
    </array>
...
Share:
12,335
Teofilo Israel Vizcaino Rodrig
Author by

Teofilo Israel Vizcaino Rodrig

iOS Developer / Web developer

Updated on June 05, 2022

Comments

  • Teofilo Israel Vizcaino Rodrig
    Teofilo Israel Vizcaino Rodrig almost 2 years

    I cannot find the answer for this question anywhere. I'm new to Xcode. I have developed two multilanguage iPhone apps and cannot upload them to iTunes Connect because I'm getting the famous error "the value for the info.plist key cfbundlelocalizations is not of the required type for that key". Everybody says that it's because I need to put there an array of values, but I don't know how to do it. If I need for example, English and French, what should I to put there? Something like this (0=en, 1=fr)?

  • Teofilo Israel Vizcaino Rodrig
    Teofilo Israel Vizcaino Rodrig over 12 years
    Thanks to your answer I could upload my app to iTunes Connect, thanks again. Please vote down for the other answer that other people let, it's not the answer for this question.
  • Softlion
    Softlion almost 10 years
    This will not work. You must use ISO 639-1 or ISO 639-2 language code names instead like @mojomajor specified in his answer
  • testing
    testing over 6 years
    @justin: I don't know if that was the old situation, but now I only see en, fr strings like Softlion mentioned. Please correct/update your answer!
  • Pavel Alexeev
    Pavel Alexeev over 5 years
    Documentation says that you can use both: “Each entry in this property’s array is a string identifying the language name or ISO language designator of the supported localization”. developer.apple.com/library/archive/documentation/General/…