2012年09月29日

Xcode4.5で必要になったiPhone 5用「Default-568h@2x.png」の謎

 iOS6がリリースされて、Xcodeのバージョンが4.5となった。そのためか「SakuttoBookはXcode 4.5に対応していますか」という問い合わせが増えた。Xcode 4.5で使えるのかというと、いまのところシミュレータと実機インストールは問題ない。申請も問題ないと思うが、今のところ試してはいない。

  Xcodeはバージョンアップが頻繁に行われる。2〜3ヶ月で確実にアップデートされる。バージョンが少し上がったとき、内部がどのように変わったのかはよくわからない。しかしはっきりしていることは、新しいバージョンでビルドすると確実に

Warning

が増える。ビルド時に左のカラムに黄色いアイコンがずらりと並ぶ。バージョンが新しくなるたびに黄色いウォーニングアイコンの数は増えていく。いたって気味が悪い。

 XcodeのWarningというのは警告である。アラートといった方がわかりやすいかもしれない。プログラムに多少問題があるが、実質的には無視してもかまわないものが大半。XcodeのバージョンがアップするたびにWarningのチェック基準が厳しくなり、いままで表示さされなかった部分でもWarningがリストされるようになった。

 ビルドできないときは、WarningではなくErrorが表示される。赤いアイコンで表示されて、その場合はビルドが中止される。SakuttoBookの場合はプログラミング上のエラーはまず解決しているので、エラーが表示されるケースは大半はプロビジョニングプロファイルや証明書関係であることが多い。新しいバージョンで開いてビルドしても赤いエラーがマークされなければビルドは可能であり、いままでWarningで申請がリジェクトされたという話は聞いていない。

 Xcode 4.5ではWarningで表示されるが、申請時には必要なものが登場した。それが

Default-568h@2x.png

というファイルがそれである。このファイルはローンチイメージと呼ばれるファイルで、アプリを起動させたときにアプリ画面が表示されるまで表示されるイメージファイルである。従来もアプリにはローンチファイルがあった。ローンチファイルはデバイスごとにファイル名が異なり、iPadで縦向き(Portrait)と横向き(Landscape)でファイルが異なる。

 iOS 5まであれば、SakuttoBookでは

iPhone 3GSまで Default.png
iPhone 4/4S   Default@2x.png
iPad/iPad2   Default-Portrait.png
iPad3       Default-Portrait@2x.png


をプロジェクトファイル取り込むと、起動時にデバイスにあわせて画像が表示される。SakuttoBookはiPadの横向きがないので必要ないが、iPadで横向きで使う場合は「Default-Portrait」の代わりに「Default-Landscape」にする。

 ローンチイメージはいままでオプションであった。使いたければ使えばよかった。たとえばMCBookではアプリ起動時にMCBookのロゴが表示される。SakuttoBookでもローンチ時にローンチイメージを取り込むと取り込んだローンチイメージが表示することができる。

 いままでオプションだったローンチイメージがXcode 4.5では必須となった。開発者の岡野さんにお聞きしたら、すでに最新版のブログラミングガイドに記載されているという。100ページ目に「App Launch (Default) Images」という見出しがあり、その中に

Every app must provide at least one launch image.

と書かれている。つまりすべてのiOSアプリは最低でも1つのローンチイメージを用意しなければならないというわけである。「at least one」がただしければ、ローンチイメージは必ずしもiPhone 5用のローンチイメージでなくてもいいことになるが、はたしてそうなのか。

 Xcode 4.5でビルドすると、Warningで「Retina 4 Support」と表示される。ここをクリックすると「Missing Retina 4 launch image」というウインドウが現れるので、ここで「Add」をクリックする。そうすると、プロジェクトファイル内に「Default-568h@2x.png」が追加される。真っ黒のPNG画像で、iPhone 5でシミュレートすると、アプリが起動する前に画面が真っ黒になる。「Default-568h@2x.png」の画像を差し替えると、差し替えた画像が表示される。

120928-01.gif

    ↓

120928-02.gif
*「Retina 4 Support」をクリックすると、「Default-568h@2x.png」が生成されて追加される。


 「Default-568h@2x.png」で表示される画像は、iPhone 5、iPhone 4inch Retinaのときだけなので、それ以外のデバイスでは使用されない。すべてのデバイスでローンチ画像を表示させるにはデバイスごとの画像を用意する必要がある。ローンチ画像がない場合は、黒い画面になるので、ローンチ画像がない場合と同じ扱いになる。

120928-03.gif
*ローンチ画像は640×1136ピクセルのRGB画像。

 不思議なのは、なぜiOS 6からはローンチ画像が必須になったのかということだろう。といっても「Missing Retina 4 launch image」で「Add」すればいい。それだけのことだが、いままでと同じ扱いをせずに、わざわざウォーニングを表示してファイルを追加させるようになった。必須であればウォーニングではなくエラーでなければならない。はてさて隠された理由はあるのだろうか。


◆[iOS] アプリに必要なアイコン・起動画面の画像サイズ&ファイル名
http://tande.jp/lab/2012/01/1635




◆Xcode 4でする実機インストールの動画チュートリアルをアップ
http://bit.ly/JEofvK

◆Xcode 4でiOSアプリの設定と申請を最短距離でする方法
http://bit.ly/Jk88Bc

◆SakuttoBook(サクッとブック)でiPhoneアプリを作る方法
http://bit.ly/mhgjCG

◆Xcode 4対応のSakuttoBook Lite版ならぬTrial版、無料ダウンロード開始
http://denshi-shoseki.seesaa.net/article/263470895.html



 


posted by @jink0222 at 17:08 | Comment(0) | TrackBack(0) | SakuttoBook日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック