備忘録 iOS

横向き固定時にラウンチ画像が出ない

横向き固定のアプリにした場合、iPhone5など一部端末でラウンチ画像が出なかった。(LaunchScreen.xibは未使用)
Asset Catalogでは対応できず、旧来の「Default@2x.png」等の画像ファイルを用意する方式を使用し、さらにinfo.plistを直接書き換えることで対応した。
そもそもiPhone6 Plus以外のiPhoneは横向きのラウンチ画像に対応していないので、90度右に回転した縦長の画像を用意する必要がある。
用意した画像ファイルは以下の6つ。

ファイル名 サイズ 90度右回転 端末
Default@2x.png 640×960 必要 iPhone4,4S
Default-568h@2x.png 640×1136 必要 iPhone5,5s,5c
Default-667h@2x.png 750×1334 必要 iPhone6,6s
Default-736h-Landscape@3x.png 2208×1242 iPhone6 Plus,6s Plus
Default-Landscape.png 1024×768 iPad,2,Mini
Default-Landscape@2x.png 2048×1536 iPad3,4,Air,Mini2

この画像をプロジェクトに追加したうえで、info.plistに以下を追記した。

<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</string>
		<key>UILaunchImageOrientation</key>
		<string>Landscape</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-568h</string>
		<key>UILaunchImageOrientation</key>
		<string>Landscape</string>
		<key>UILaunchImageSize</key>
		<string>{320, 568}</string>
	</dict>
	<dict>
		<key>UILaunchImageMinimumOSVersion</key>
		<string>8.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>8.0</string>
		<key>UILaunchImageName</key>
		<string>Default-667h</string>
		<key>UILaunchImageOrientation</key>
		<string>Landscape</string>
		<key>UILaunchImageSize</key>
		<string>{375, 667}</string>
	</dict>
	<dict>
		<key>UILaunchImageMinimumOSVersion</key>
		<string>8.0</string>
		<key>UILaunchImageName</key>
		<string>Default-736h-Landscape</string>
		<key>UILaunchImageOrientation</key>
		<string>Landscape</string>
		<key>UILaunchImageSize</key>
		<string>{414, 736}</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>

参考サイト:https://developer.apple.com/library/ios/technotes/tn2244/_index.html

質問によるメタデータリジェクトへの対応

アップルへのレビュー申請で問題解決センター(Resolution Center)に質問が届き、状態がメタデータリジェクトになった。
質問は「ファイルシェアリングを使用しているようだが、アプリ内でどうやって試せばよいか?」のような内容だった。
問題解決センターでこれに回答したが、状態はメタデータリジェクトなので「審査へ提出」ボタンが有効になっていた。
「審査へ提出」ボタンを押す必要があるのか不明だったが、ボタンを押した。
ただ後で調べたところ、「審査へ提出」ボタンを押さなくてもレビューが再開したという報告があった。
http://stackoverflow.com/questions/30056842/should-i-resubmit-the-binary-after-replying-to-a-metadata-rejection
「審査へ提出」ボタンを押してから実際にレビューされるまでそこそこ時間がかかったので、ボタンを押さない方が早くレビューされたのかもしれない。

glBindFramebufferで画面のフレームバッファに戻す

[sGLKView bindDrawable]; // sGLKViewはGLKView*型
を呼び出すことで画面のフレームバッファに戻る。
この方法ではなくglBindFramebuffer関数で戻したい場合は、以下のようにして初期化時にフレームバッファのIDを取得しておく。

[sGLKView bindDrawable]
GLint gGLDisplayFrameBuffer;
glGetIntegerv(GL_FRAMEBUFFER_BINDING, &aGLDisplayFrameBuffer);

これでaGLDisplayFrameBufferをglBindFramebufferで設定すれば画面のフレームバッファに戻る。

コメントを残す

メールアドレスが公開されることはありません。