Before migrating to xcstrings for i18n, our project used Xcode's base localization. We want to preserve that pattern after the migration, but haven't found a clean way to do it.
First attempt — a "base" identifier in both the project configuration and the xcstrings files. This fails: the compiler inconsistently emits either a base.lproj or a Base.lproj folder, and the casing mismatch breaks the App Store Connect upload.
Fallback — a "und" entry, "Undetermined" under ISO 639-2, which Apple documents as a valid language identifier. This behaves correctly at every visible step:
the build generates a und.lproj folder, as expected;
the ASC upload succeeds with no warning;
"Undetermined" appears in the ASC list of available languages;
the build is downloadable on TestFlight and distributable on the App Store, with no warning.
But there's one silent failure: once a "und" build is shipped, the app/version becomes invisible — on the App Store, on iOS, and on the website.
We currently work around this by stripping every "und" entry from the project before shipping. But we genuinely need the base-localization pattern, and this manual removal isn't something we're comfortable relying on.
Is there a supported way to keep a neutral/base localization in xcstrings that both passes ASC upload and stays visible on the store?
2
0
195