私が最初に Apple の開発を始めたときにプロジェクトを開始しましたが、ファイル構造にいくつかの興味深い間違いがあり、それがこの問題の原因となっている可能性があります。つまり、最近、Xcode プロジェクトを、WWDC 2012 のサンプル コードの一部に基づいたワークスペースに切り替えました。
例として、localizable.strings ファイルにキーと値のペアがあるとします: "someStringThatShouldBeLocalized" = "root view title"
元の「物理」構造は次のようになります。
- iOS
-- localizable.strings
-- core data models & classes
ワークスペースの構造は次のようになります。
- iOS
- Mac OSX
- Shared
-- core data models & classes
-- en.lproj
--- localizable.strings
localizable.strings ファイル、およびコア データ モデルとクラスは、3 つのプロジェクトすべてで参照されています。それらのいずれかをビルドして実行すると、期待どおりに動作します。
- 正しいデータ モデルとクラスが使用されている。
- ローカライズされた正しい文字列が使用されている - 「ルート ビュー タイトル」
ただし、App Store からの更新をシミュレートすると (ストアで現在入手可能なアプリをインストールしてから Xcode から実行するか、ソース管理からタグ付けされたコピーからインストールします)、期待どおりに動作しません。
- 正しいデータ モデルとクラスが使用されていますが、
- 正しくない/ローカライズされた文字列が使用されていません。表示されるのは、NSLocalizedString(key, comment) への呼び出しのキーだけです - "someStringThatShouldBeLocalized"
繰り返しますが、問題は、以前にインストールされたアプリのバージョンから実際に更新する場合にのみ発生します.
ありがとう。