対象のエラー
XcodeからアプリをApp Store Connectにアップロードする際、以下のエラーに遭遇することがあります。
Invalid XXX icon. The XXX icon in the asset catalog in 'XXX.app' can't be transparent or contain an alpha channel
これは配信しようとしているアプリのアイコンに透明度情報(アルファチャンネル)が含まれている際に発生するエラーです。
このエラーはValidate Appを実行することで検知できます。
Validate Appで検知できると何が嬉しいのか
自分が所属するチームでは以下のようなリリース作業フローを採用していました。
アイコン変更 → 動作確認 → レビュー → Distribute App
このフローでリリース作業をする場合、最後のDistribute Appの段階でエラーが発生するとアイコン修正をしてやり直す必要があります。 また、特定の日時にアイコン変更をリリースしたい場合、レビュー通過からDistribute Appまで期間が空き、エラーに気づく頃には時間の余裕がなくなっているかもしれません。
以下のようにアイコン変更の直後にValidate Appを実行することでエラーを事前に検知し、手戻りを防ぐことができます。
アイコン変更 → Validate App → 動作確認 → レビュー → Distribute App
Validate Appの実行方法
- Xcodeのメニューから Product > Archive を選択し、アプリをアーカイブする
- アーカイブが完了すると表示されるOrganizer画面で、対象のビルドを選択し Validate App ボタンをクリックする
- 表示されるダイアログに従って、Validate を実行する
アイコンにアルファチャンネルが含まれている場合、この段階でエラーが検出されます。 この際、アルファチャンネル以外の項目もチェックされるため内容によっては無視しています。
例えばApp Store Connectにすでにアップロード済みのバージョンでValidate Appを実行すると以下のようなエラーが出ますが、画像のチェックだけしておきたいケースでは無視で問題ありません。

おわりに
今回はアルファチャンネルエラーがValidate Appで検知できることを紹介しました。
XcodeのValidate Appが具体的にどのようなチェックをするのか公式ドキュメントに記載されていないため、チーム内で検証した内容を記事にしてみました。
では、良いXcodeライフを!