読者です 読者をやめる 読者になる 読者になる

面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

iOSアプリの申請時に画像関係で引っかかった箇所

何度かiOSアプリの新規申請や更新申請を経験していて、慣れているもののそれでもたまにちょっとだけミスしてエラーになることがある。
現在プライベート開発で作成したアプリの1.0版が完成したので、申請を仲間内で協力して行っていたのだけど、
スクリーンショット等の画像周りを自分が担当して、ミスした箇所と対処を記載する。

ミスしたのは2点

AppStore用のアイコン画像の透過削除し忘れによるエラー

AppStore用のアイコン画像は透過(アルファチャンネル)が入っていると弾かれる。
以前は、GIMPを使って「アルファチャンネルを削除」というメニューがあったので、一発で簡単に処理できていたのだけど、今の環境にはGIMP入れていなかったため、代替方法がないか捜した。

1. プレビューを使った方法
  1. アルファチャンネルを削除したい画像を開く
  2. メニューからファイル>書き出すの順に選択する
    f:id:aryzae:20160629013708p:plain
  3. フォーマットの下にあるアルファのチェックボックスを外して保存する
    f:id:aryzae:20160629013942p:plain
2. Pixelmatorを使った方法
  1. アルファチャンネルを削除したい画像を開く
  2. 1番下に新規レイヤーを追加する
    f:id:aryzae:20160629014317p:plain
  3. 追加したレイヤー全体を不透明度100で任意の色でベタ塗りする
    f:id:aryzae:20160629014433p:plain
  4. メニューからファイル>書き出すの順に選択して保存する

プレビューで表示してインスペクタでアルファ項目がなければ消えている
f:id:aryzae:20160629015501p:plain
f:id:aryzae:20160629014902p:plain


iPhone 6Plus/ iPhone 6sPlusのスクリーンショットのサイズによるエラー

会社じゃない限りは全画面サイズの実機もなかなか持っていないだろうし、Macにケーブルつなぎ直す手間を考えるとSimlatorでスクリーンショットを撮る人は多いと思う。
Plusがつく機種はRetinaDisplayの中でも@3xの3倍解像度を持つ特殊なタイプ。
でも、画面に実際表示するときは3倍の解像度からやや縮小して画面内に収めているため、純粋な3倍ではない。
そのため、今回のエラーに遭遇した模様。

原因は、Simulatorの"Optimize Rendering for Window Scale"

f:id:aryzae:20160629020341p:plain

Simulatorは、100%のScaleだと大きすぎるため画面に収まらないので、
いくぶんか小さいScaleに設定していたりすると思う。
"Optimize Rendering for Window Scale"がONの時、その小さいScaleでスクリーンショットを撮影するとScaleのサイズのままの解像度で保存される。

Plus系は、2208×1242の解像度が必要だけど、それよりも小さいサイズになるためエラーになる。

"Optimize Rendering for Window Scale"のチェックを外すことで、Scaleに関係なくSimulatorの原寸の解像度でスクリーンショットが保存される。