I started a project when I first began with Apple development, and probably made some interesting mistakes in file structure which is helping cause this problem. Namely, I recently switched my Xcode project to a workspace based on some of the sample code from WWDC 2012.
For the purpose of example, let's say there is a key-value pair in the localizable.strings file: "someStringThatShouldBeLocalized" = "root view title"
The original "physical" structure is similar to the following:
- iOS
-- localizable.strings
-- core data models & classes
The workspace structure is similar to the following:
- iOS
- Mac OSX
- Shared
-- core data models & classes
-- en.lproj
--- localizable.strings
The localizable.strings file, and core data models and classes are referenced in all three projects. When I build and run any of them, it works as expected:
- Correct data models and classes are used, and
- Correct localized strings are used - "root view title"
However, when I simulate updating from the App Store (install the app currently available on the store then run from Xcode or install from tagged copy from source control), it doesn't work as expected:
- Correct data models and classes are used, but
- Incorrect/No localized strings are used, all I see are the keys in call to NSLocalizedString(key, comment) - "someStringThatShouldBeLocalized"
Again, the problem only arises when actually updating from previously installed versions of the app.
Thanks.