AppStoreConnectAPIの利用によって、Auto Provisioning
の際に二段階認証とアプリ別シークレットを使うセッションベースの認証を使わなくてもよくなりました。
そちらの記事はいくつかあるのですが、Deploy to iTunes Store
の方の解説がなかったので、この記事に残します。
API BasedでAppStoreConnectにアップロードする方法
結論から言うと、「Deploy to iTunes Connect - Application Loader」ならAPI Basedでデプロイが可能です。ソースはこちら(公式)
手順
1. AppStoreConnectAPIとの連携
公式の手順があるのでこの記事では割愛します。
https://blog.bitrise.io/app-store-connect-api-on-bitrise
2. 「Deploy to iTunes Connect - Application Loader」を追加
以下のように、「Xcode Archive & Export」のステップでexport-methodが「app-store」のipa/pkgを吐き出した後の位置に「Deploy to iTunes Connect - Application Loader」ステップを挟みます。
3. Configに「API Key URL」と「Issuer ID」を設定する
p8ファイルのURLとissuerIDを設定すれば良いのですが、前者に少し工夫が必要です。
説明に書いてあるとおり、Workflow Editor
タブの最下部にあるGeneric File Storage
にp8ファイルをアップロードし、そのURLをAPI Key URLとして設定するようにしましょう。
↓この場所で、最初にFile Storage IDを入力し、その後にp8ファイルをドロップします。
IssuerIDは環境変数(もしくはシークレット)として定義し利用すると良いでしょう。
まとめ
以上の設定で、AppStoreConnectにアプリケーションをデプロイできるはずです。
何か問題等あればコメントで教えてください。ありがとうございました。