[AppStoreConnect] バイナリアップロードを自動化しよう!
どうも、お久しぶりです。
株式会社グレンジでエンジニアマネージャー兼クライアントエンジニアのmesshiです。
(CyberAgentグループ、ゲーム事業部の子会社です)
毎年Advent Calendarの時期にフッと現れて、記事を投稿するスタイルが定着しています。
社内のQiita Teamには定期的に投稿はしているんですが、こちらにも投稿できるものは転載していかないとなーと思っている次第です。
今年の記事は題名通り、 iOSのバイナリをAppStoreConnectにアップロードする際の手順を自動化する お話です
2019年はXCode11からApplication Loaderが無くなり、混乱した人も多かったのではないでしょうか
少し時間が経った今こそ、この辺りの記事を改めて書こうかなと思います
本記事の前提条件
今回の記事では、既にXcodeプロジェクトでのアーカイブが成功している事を前提とします
この辺りの記事はたくさんあるのと、各プロジェクトによってバックグラウンドが違うため割愛します
本記事の自動化で使用するコマンドはxcrun altool
です
自動化を行う前に
それでは自動化を行いましょう!と言いたい所ですが、まずはコマンドが使用できるか確認しましょう
xcrun altoolの確認
ターミナルで実際に入力してみましょう
次のようなエラーが発生した場合、少し準備が必要です
GRENGE:~ a13$ xcrun altool
xcrun: error: unable to find utility "altool", not a developer tool or in PATH
altoolが見つからないと言われています
その場合は、下記コマンドを叩けばOKです
sudo xcode-select -r
xcode-selectとは複数のXcodeアプリケーションをインストールしている際に
xcrunなどのコマンドがどのバージョンを使用するかを明示的に切り替えたりするのに使用します
詳しく知りたい方は、リファレンスの4番を見てください
今回の「-r」のオプションについてはUsageを見てみましょう
Usage: xcode-select [options]
Print or change the path to the active developer directory. This directory
controls which tools are used for the Xcode command line tools (for example,
xcodebuild) as well as the BSD development commands (such as cc and make).
Options:
-h, --help print this help message and exit
-p, --print-path print the path of the active developer directory
-s <path>, --switch <path> set the path for the active developer directory
--install open a dialog for installation of the command line developer tools
-v, --version print the xcode-select version
-r, --reset reset to the default command line tools path
注釈に書かれている通り、command line toolsへのパスをリセットしているだけです
自動化を行う
コマンドを叩く準備ができました
実は、この時点で自動化までにやることの半分以上は終わっています
あとはコマンドを記述していくだけです
xcrun altoolを使用する
xcrun altoolを用いてアップロードする方法は調べた限り2通りあります
以下より、その2つについて紹介していきます
手法1: App Store Connectのログイン情報を直接記載する方法
ログイン情報を直接、コマンドラインに入力するので比較的簡単です
(セキュアかどうかはさておき)
コマンド
次のコマンドをタイプするだけでOKです
#validate
xcrun altool --validate-app -f XXXX.ipa -t ios -u LOGIN_ID -p LOGIN_PASSWORD
#submit
xcrun altool --upload-app -f XXXX.ipa -t ios -u LOGIN_ID -p LOGIN_PASSWORD
置き換える箇所は「ipaのパス」AppStoreConnectへの「ログインID」と「ログインパスワード」になります
手法2: App Store ConnectのApi Keyを使用する方法
こちらは直接ログイン情報をコマンドラインに入力しないので、先ほどの手法と比べて、一手間掛かります
以下に手順を載せていきます
ユーザとアクセスに遷移する
まずはApp Store Connectにログインしましょう
その後、「ユーザとアクセス」を押下します
キーからアクセスをリクエストする
「キー」のタブを押下し、「アクセスをリクエスト」を押下します
アクセスリクエスト許可する
リクエストを押下するとポップアップが開きます
問題なければチェックして「提出」を押下しましょう (提出しないと先に進めません)
APIキーを生成する
ポップアップが開くので、「APIキーの名前」を入力し、アクセス権は適切な権限範囲を選択しましょう
とりあえず、今回はDeveloperを選択します
生成を押下することで、APIキーが作成されます
APIキーをダウンロードする
新しいレコードが生成されているので、「APIキーをダウンロード」を押下します
すると警告ポップアップが開きます。
ポップアップの内容通り、 一度しかダウンロードできない ので、しっかり管理してください
ダウンロードしたファイルを配置する
自動化するPCに、ダウンロードしたファイルを配置しましょう
リファレンスの1番や2番では複数記載されていますが、私の場合は下記にしました
/Users/USER_NAME/private_keys
もし駄目だった場合は、他の場所を試してみるのも良いかと思います
コマンド
叩くコマンドはこちらです
前回と基本のコマンドは一緒ですが、オプションが微妙に違います
#validate
xcrun altool --validate-app -f XXXX.ipa -t ios --apiKey YOUR_KEY_ID --apiIssuer YOUR_ISSUER_ID --verbose
#submit
xcrun altool --upload-app -f XXXX.ipa -t ios --apiKey YOUR_KEY_ID --apiIssuer YOUR_ISSUER_ID --verbose
置き換える場所は「YOUR_KEY_ID」と「YOUR_ISSUER_ID」です
情報の記載場所は「ユーザとアクセス」ページ内にあります
CLIからコマンドを叩く
手法1、手法2のどちらを採用したにしろ
あとは、これをJenkinsなどのCLIから叩くようにすれば、自動化完了です
最後に
申請作業は、継続的に発生する作業なのでなるべく簡略化や自動化のしがいがありますね。
この記事が自動化をしようとしている方の一助になれば幸いです。
まだまだ弊社のエンジニアからの発信は続きます
そして、Grengeという企業へ興味を持って頂けると、大変嬉しく思います。
それでは、最後まで読んで頂き、ありがとうございました。
リファレンス
Author And Source
この問題について([AppStoreConnect] バイナリアップロードを自動化しよう!), 我々は、より多くの情報をここで見つけました https://qiita.com/messhi/items/cb8c6f2b4b6540995189著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .