App Store ConnectのWebアクセスを止めて、ターミナルからすべてを自動化する方法
App Storeにアプリをデプロイしたことのある人なら 누구나、この的痛苦を経験したことがあるでしょう。App Store ConnectのWebインターフェースは、凍り付いたり、最も不便なタイミングで再認証を要求したり、TestFlightにビルドを追加するような簡単な操作でもマウスクリックを強制したりします。
最近、ascユーティリティ(App Store Connect CLI)を見つけました。これは、iOSおよびmacOSアプリの公開業務からブラウザを排除するために特意的に作成されたGoベースのコンソールツールです。
ascとは
このプロジェクトはGoで書かれており、単一のバイナリとして配布され、macOS、Linux、Windowsで動作します。主な利点は、このツールが最初からインタラクティブなプロンプトなしで設計されていることです。特に要求しない限り、Enterキーの確認も必要ありません。これにより、スクリプトやCI/CDのパイプラインでの使用が便利です。
出力形式は環境に適応します。ターミナルでコマンドを実行すると、ユーティリティはテーブルを描画します。結果がパイプラインやファイルに出力される場合は、クリーンなJSONを出力します。
実際の主要機能
このユーティリティは、Appleのウェブサイトにアクセスしていたほぼすべてのタスクをカバーしています。
ビルドのアップロードとTestFlightでの作業
.ipaまたは.pkgファイルのアップロードは、1つのコマンドで実行できます:
asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
その後、ビルドをテスターにすぐに割り当てることができます。macOS向けにビルドしているチーム向けに、.pkgのアップロードと内部テスターグループへのバージョン追加を連携させる機能がサポートされています:
asc builds upload --app "123456789" --pkg "./build/MyMacApp.pkg" --version "1.2.3" --build-number "42" --wait --output json
asc builds add-groups --app "123456789" --build-number "42" --version "1.2.3" --platform MAC_OS --group "Internal Testers"
TestFlightからのクラッシュログやユーザーフィードバックを、コンソールから直接読み取ることができます。
メタデータとASOの管理
アプリが複数の言語にローカライズされている場合、Webインターフェースを通じての説明文の更新は面倒になります。このユーティリティはローカライゼーションをローカルディレクトリにエクスポートし、編集を可能にし、変更を適用し直します:
asc metadata init --dir "./metadata" --version "1.2.3" --locale "en-US"
asc metadata apply --app "123456789" --version "1.2.3" --dir "./metadata" --dry-run
ASO最適化のために、asc metadata keywords auditコマンドが用意されています。重複するキーワード、ロケール間の繰り返し、アプリ名との競合、バイト数の超過をチェックします。
スクリーンショットの操作
スクリーンショットはフォルダからバッチアップロードでき、必要なデバイスタイプを指定できます:
asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace
CI/CDでの認証の悩みを解決
ローカル環境では、ユーティリティはキーをシステムのKeychainに保存できます。しかし、CIサーバー(GitHub Actions、GitLab CI、Bitrise)では、Keychainが利用できないことが多いです。開発者は、ファイルまたは環境変数からの設定読み込み用のフラグを提供しました:
asc auth login \
--bypass-keychain \
--name "MyCIKey" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8
長いビルドを開始する前に、特別な検証コマンドでキーが有効かどうかを確認できます:
asc auth doctor
導入する価値はあるか
年に1回だけアプリをリリースする場合は、AppleのWebパネルで十分かもしれません。しかし、定期的なリリース、複数のローカライゼーションの作業、透明なCI/CDの構築には、このユーティリティは何時間も節約してくれます。
このプロジェクトは積極的に開発されており、モバイル開発者からのフィードバックも良好で、既存のシェルスクリプトにも簡単に統合できます。
関連プロジェクト