「iPhone SDKの教科書」のサンプルをApp Storeにサブミット中ですが、アプリケーション・アイコンをローカライズしているAgeのバイナリーをアップロードすると以下のエラーが出ます。
The binary you uploaded was invalid. The bundle did not contain an icon.
よくよく調べてみるとiPhone Application Programming Guide(キホンだよな〜苦笑)に、こんな記述がありました。
Even if you provide localized versions, however, you should always include a default version of these files at the top-level of your application bundle. The default version is used in situations where a specific localization is not available.
アプリケーションのパッケージを開けば分かるように、アイコン・ファイルはローカライズしているから、English.lprojやJapanese.lprojといったフォルダ内にあります。しかし、これじゃダメで、トップ・レベル(パッケージを開いてすぐの階層)にもアイコン・ファイルが必要ってことのようです。
もっとも、トップ・レベルになくても、.lprojフォルダにアイコン・ファイルがあれば、非対応言語の場合でも正しく表示されます。また、App Storeでは言語ごとにアプリケーション・アイコン(512×512ピクセル)を変えて登録できないから、なんだか中途半端な気もしますね。
ともあれ、この点はアップロード時に自動チェックされるので、以下の手順で対処する必要があります。ただし、これはローカライズ時にXcodeが自動的にすべき仕事ですよね。
- .lprojフォルダとは別にImagesフォルダにもIcon.pngを入れる。
- (このIcon.pngは英語版でも日本語版でもどちらでも良い。)
- ImagesフォルダのIcon.pngをプロジェクトのImagesグループに登録する。
- アプリケーションをビルドし直す。
ピンバック: akalogue » サンプル・アプリケーションがApp Storeに勢揃い