スプラッシュスクリーンをローカライズしようとして色々試して最終的にうまくいった方法のメモ。
丸1日試行錯誤した。。。
iOS10で動作確認済み。
ちなみに下記のURLの方法はiOSのバージョンが古いのかうまくいかなかった。
http://www.upquark.co.jp/archives/1561
http://source.hatenadiary.jp/entry/2014/06/19/101629
1. アプリが対応する端末だけ、それぞれのサイズの Default.png の各画像を用意する。
-
Default.png
(320 x 480) -
Default@2x.png
(640 x 960) -
Default-568h@2x.png
(640 x 1136) -
Default-667h@2x.png
(750 x 1334) -
Default-736h@3x.png
(1242 x 2208) -
Default-Portrait.png
(768 x 1024) iPad用 -
Default-Landscape.png
(1024 x 768) iPad用 -
Default-Portrait@2x.png
(2048 x 2732) iPad Pro用 -
Default-Landscape@2x.png
(2732 x 2048) iPad Pro用
2. Info.plist を直接エディタで開き、下記を対応する言語分追加する
すでに記述があればスキップ。
<key>CFBundleLocalizations</key>
<array>
<string>ja</string>
<string>en</string>
</array>
3. それぞれの画像ファイルをローカライズする
Xcode上に1の画像ファイルを追加し(場所はどこでも良さげ)、選択してから、右カラムの中のLocalizeボタンで全てローカライズする。
対応する言語全てにチェックを入れる。
4. Info.plist ファイルを直接エディタで開き、下記を追加する。
対応する端末、しない端末、OSバージョン、端末の向き等あれば適宜追加・編集する。
<key>UILaunchImages</key>
<array>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 480}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-568h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{320, 568}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-667h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{375, 667}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-736h</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{414, 736}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-Portrait</string>
<key>UILaunchImageOrientation</key>
<string>Portrait</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
<dict>
<key>UILaunchImageMinimumOSVersion</key>
<string>7.0</string>
<key>UILaunchImageName</key>
<string>Default-Landscape</string>
<key>UILaunchImageOrientation</key>
<string>Landscape</string>
<key>UILaunchImageSize</key>
<string>{768, 1024}</string>
</dict>
</array>
これでできているはず。
ちなみに一度スプラッシュを表示させると、iPhoneの設定より言語を変更してもキャッシュが残ってスプラッシュは変更されない。アプリを再インストールすると変更される。