Google Play でアプリのリリースを自動化する
2018年8月9日木曜日
この記事は ソフトウェア エンジニア、Nicholas Lativy による Android Developers Blog の記事 "Automating your app releases with Google Play" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google I/O では、Google 製のアプリがどうやって Google Play を活用してリリースとアップデートを成功させているかを共有し、新しい Google Play Developer Publishing API バージョン 3 を紹介しました。
Publishing API は、APK をアップロードしてリリースする機能を提供します。この API を使うと、既存のリリース プロセスや自動ワークフローに公開操作を組み込むことができます。ここでは、API のバージョン 3 を使って改善できる点について、いくつか簡単に説明します。
API によるリリース
Publishing API は、Play Console でおなじみのリリースモデルを使うようになりました。
これにより、今までは Play Console でしかできなかった多くの操作が可能になり、API によってリリースを完全に制御できるようになります。たとえば、API で作成されるリリースの名前を制御できます。また、Play Console と一致させるため、API を使用してリリースできる対象に関する制約が緩和されました。
テストトラックの追加
この API では製品トラックに加えて、アプリに対して設定されている任意のテストトラックへのリリースがサポートされました。これにより、QA の準備が整い次第、継続的インテグレーション システムから内部テストトラックに新しいビルドをプッシュすることが可能になります。
段階的ロールアウト
アプリの新バージョンをデプロイする方法として、段階的ロールアウトが推奨されています。この機能を使うと、ごく一部のユーザーに新しいリリースを公開し、そのリリースへの信頼が高まるにつれて、徐々に対象ユーザーを拡大することができます。
API で inProgress リリースとして、直接的に段階的ロールアウトを指定できるようになりました。
API でステータスを halted に変更して、段階的ロールアウトを中止できるようになりました。この機能を使うと、ロールアウトの実施中に見つかった何らかの問題に対して、自動的に対応することができます。誤検知であることがわかった場合、API を使って停止中のリリースのロールアウトを再開することもできます。その場合は、ステータスを inProgress に戻します。
リリースノート
リリースノートは、リリースに追加した新機能をユーザーに知らせる方法として便利です。V3 では、API でリリースノートを簡単に指定できるようになっています。具体的には、リリースに releaseNotes 項目を追加します。
ドラフト リリース
テストビルドは自動的にデプロイしたいものの、本番環境へのロールアウトには Play Console を使いたいというデベロッパーが多いことは承知しています。
そこで、V3 API には、ドラフト リリースを作成して管理する機能が追加されています。
これにより、継続的インテグレーション システムから APK やアプリバンドルをアップロードしてドラフト リリースを作成し、プロダクト マネージャーがログインしてすべてに問題がないことを確認して [Confirm and Rollout] を押すという運用が可能になります。
これらの機能が役立ち、Google Play でのリリースやアップデートの成功につながることを願っています。アプリの配信に役立つその他のすばらしいツールに興味があるという方は、Android Developers YouTube Channel に投稿されている I/O セッションをご覧ください。
このブログ投稿はどのくらい役に立ちましたか?
★ ★ ★ ★ ★
![](data:image/png;base64,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)
Reviewed by Khanh LeViet - Developer Relations Team
Google I/O では、Google 製のアプリがどうやって Google Play を活用してリリースとアップデートを成功させているかを共有し、新しい Google Play Developer Publishing API バージョン 3 を紹介しました。
Publishing API は、APK をアップロードしてリリースする機能を提供します。この API を使うと、既存のリリース プロセスや自動ワークフローに公開操作を組み込むことができます。ここでは、API のバージョン 3 を使って改善できる点について、いくつか簡単に説明します。
API によるリリース
Publishing API は、Play Console でおなじみのリリースモデルを使うようになりました。
{ "track": "production", "releases": [ { "name": "Release One", "versionCodes": ["100"], "status": "completed" } ] }
これにより、今までは Play Console でしかできなかった多くの操作が可能になり、API によってリリースを完全に制御できるようになります。たとえば、API で作成されるリリースの名前を制御できます。また、Play Console と一致させるため、API を使用してリリースできる対象に関する制約が緩和されました。
テストトラックの追加
この API では製品トラックに加えて、アプリに対して設定されている任意のテストトラックへのリリースがサポートされました。これにより、QA の準備が整い次第、継続的インテグレーション システムから内部テストトラックに新しいビルドをプッシュすることが可能になります。
段階的ロールアウト
アプリの新バージョンをデプロイする方法として、段階的ロールアウトが推奨されています。この機能を使うと、ごく一部のユーザーに新しいリリースを公開し、そのリリースへの信頼が高まるにつれて、徐々に対象ユーザーを拡大することができます。
API で inProgress リリースとして、直接的に段階的ロールアウトを指定できるようになりました。
{ "track": "production", "releases": [ { "versionCodes": ["100"], "status": "completed" }, { "versionCodes": ["200"], "status": "inProgress", "userFraction": 0.1 } ] }
API でステータスを halted に変更して、段階的ロールアウトを中止できるようになりました。この機能を使うと、ロールアウトの実施中に見つかった何らかの問題に対して、自動的に対応することができます。誤検知であることがわかった場合、API を使って停止中のリリースのロールアウトを再開することもできます。その場合は、ステータスを inProgress に戻します。
リリースノート
リリースノートは、リリースに追加した新機能をユーザーに知らせる方法として便利です。V3 では、API でリリースノートを簡単に指定できるようになっています。具体的には、リリースに releaseNotes 項目を追加します。
{ "track": "production", "releases": [ { "versionCodes": ["100"], "status": "completed", "releaseNotes": [ { "language": "en-US", "text": "Now it's easier to specify release notes." }, { "language": "it-IT", "text": "Ora è più semplice specificare le note sulla versione." } } ] }
ドラフト リリース
テストビルドは自動的にデプロイしたいものの、本番環境へのロールアウトには Play Console を使いたいというデベロッパーが多いことは承知しています。
そこで、V3 API には、ドラフト リリースを作成して管理する機能が追加されています。
{ "track": "production", "releases": [ { "name": "Big Launch", "versionCodes": ["200"], "status": "draft" } ] }
これにより、継続的インテグレーション システムから APK やアプリバンドルをアップロードしてドラフト リリースを作成し、プロダクト マネージャーがログインしてすべてに問題がないことを確認して [Confirm and Rollout] を押すという運用が可能になります。
これらの機能が役立ち、Google Play でのリリースやアップデートの成功につながることを願っています。アプリの配信に役立つその他のすばらしいツールに興味があるという方は、Android Developers YouTube Channel に投稿されている I/O セッションをご覧ください。
このブログ投稿はどのくらい役に立ちましたか?
★ ★ ★ ★ ★