テストに成功したので、今度はリリース用のビルドをxcodebuildを使って作成し、App Storeにアップロードするところまでをスクリプト化したい。しかし、この手順は設定が多く、サードパーティツールが必要になり、仕様変更などがあった場合に都度確認・調整が必要になることもある難所だ。スクリプト化をする前に、XcodeとApplication Loaderを使って、申請までの流れの確認をしておこう。
macOSアプリのビルドから申請の流れ
通常のmacOSアプリのビルドから申請までの流れは下記の通りだ。
- App IDの登録, Provisioningの作成などを行う
- iTunes Connect上でアプリを登録する
- iTunes Connect上でアプリ用の新しいバージョンを作成する
- ターゲットをビルドして、appファイルを作る
- appファイルを含むpkgファイルを作る
- pkgファイルをApp Storeにアップロードする
- iTunes Connect上で、そのバージョンに関する情報を入力する
- iTunes Connect上でアップロードしたビルドを選択して、申請完了
1, 2は新規アプリの申請時のみ。4〜6はXcode.app上で行う作業。3, 7, 8はブラウザでの作業となる。このうち、3〜6の作業をスクリプト化することを目標とする。ただし、4〜6の一連の作業を一気にスクリプト化しようとすると、うまくいかなかった時に何が起きたかわけがわからなくなってしまうので、順番に確認していこう。
まずは、Xcodeで普通にアップロードして確認
処理をスクリプト化するにあたっては、テストの時と同じく、まずプロジェクトがXcode上で期待通りにただしく動作する状態になっていることが重要だ。そこで、まずは普通にXcodeを使ってビルドをApp Storeにアップロードできるかどうかを確認しておく。
Xcodeでプロジェクトあるいはワークスペースを開いたら、Product > Archiveからアーカイブを行う。アーカイブに成功すると、Organizerウィンドウが立ち上がるので、作成されたアーカイブを選択し、右側にある「Upload to App Store」ボタンを押し、案内に従ってアップロードを完了させる。
プロビジョニングの設定が間違っている、ビルドナンバーあるいはバージョンの指定に問題がある場合は、ここで直しておく。
pkgファイル作成ステップとアップロードステップ
さて申請ビルドのスクリプト化は、割と設定箇所が多く大変なので、申請用のpkgファイルを作るまでのステップと、pkgファイルをApp Storeにアップロードするステップに分けて試していく。それぞれのステップ毎に動作を確認・理解していくことで、後で全体を設定してうまく動かなかった時に原因の特定がやりやすくなる。
Xcodeでpkgファイルを作る
Xcodeを使ってのアップロードに成功したら、ビルドナンバーを一つ繰り上げて、もう一度Product > Archiveからアーカイブを行う。アーカイブに成功しOrganizerが立ち上がったら、今度は「Upload to App Store」ではなく「Export…」を選ぶ。
Organizerで「Upload to App Store」ボタンを押した場合は、バイナリが直接App Storeにアップロードされるが、「Export…」ボタンを押すとアップロードは行わず、代わりにpkgファイルを出力できる。
Save for Mac App Store Deploymentを選び、先に進むとpkgファイルが作成される。
Application Loaderを使ってバイナリーをアップロードする
XcodeにはApplication Loaderというアプリが付属しているが、使ったことがない人も多いかもしれない。このアプリはiOSのipaファイルや、macOSのpkgファイルをiTunes Connectにアップロードするためのもので、アプリの開発者と実際にiTunes Connectで配信を行うパブリッシャーが異なる場合や、申請に使ったipa/pkgを手元に残した状態で申請を行いたい場合などによく使われる。
このApplication Loaderを使って、先ほど作ったpkgファイルをアップロードしてみよう。使い方はいたって簡単だ。
XcodeのOpen Developer ToolメニューからApplication Loaderを起動する。Apple IDでのサインインを求められるので、サインインする。
「Appをデリバリ」をダブルクリックすると、ファイルを求められるので、先ほど作ったpkgファイルを選ぶ。あとは、画面上に表示されるアプリの情報を確認して、先に進むだけだ。
iTunes Connect上で、バイナリが正しく登録されていることを確認できれば成功。
pkgファイルを作ってアプリのバイナリをアップロードする流れを確認できた。次のポスト以降では、このpkgファイルの作成とアップロードの手順をスクリプト化していこう。
「macOSアプリのCI事情4 – ビルドからアップロードまでの流れ」への1件のフィードバック