iOS
WWDC2018

WWDC 2018: Automating App Store Connect メモ

これは何

WWDC 2018 のセッション Automating App Store Connect のメモです。

セッション概要

The new App Store Connect API provides a familiar and highly readable REST API designed to facilitate the automation of many tasks you would typically perform through the Apple Developer website and the App Store Connect browser interfaces. Learn how this API allows you to manage your apps and testers for TestFlight, create code signing resources, download reports, and even manage your organization. See how this API leverages JWT authentication and a JSON payload for all transactions to make this new service easy to integrate with your existing automated workflows.

新しいApp Store Connect APIは、Apple Developer WebサイトやApp Store Connectのブラウザインターフェイスを使って、通常実行する多くのタスクの自動化を容易にするように設計された使い慣れた読みやすいREST APIを提供します。 このAPIを使用してTestFlightのアプリケーションとテスターを管理したり、コード署名リソースを作成したり、レポートをダウンロードしたり、組織の情報を管理したりすることができます。この新しいサービスを既存の自動ワークフローと容易に統合するために、JWT認証とすべてのトランザクションのJSONペイロードをどのように利用するか御覧ください。

Getting data

APIのURLは

api.appstoreconnect.apple.com

のようなドメインになる。

様々な情報が取得できる。

スクリーンショット 2018-06-08 15.06.45.png

例えば

GET api.appstoreconnect.apple.com/v1/users

はユーザー情報を取得するAPI。次のようなレスポンスが返ってくる。

IMG_6876.PNG

Changing data

HTTPメソッドは次のものを利用する。

スクリーンショット 2018-06-08 15.07.25.png

例えばユーザーにインビテーションを送る場合は POST

IMG_6878.PNG

ユーザーの属性を更新する場合は PATCH

IMG_6879.PNG

ユーザーを削除する場合は DELETE

スクリーンショット 2018-06-08 15.47.12.png

Relationships

スクリーンショット 2018-06-08 15.37.11.png

TestFlight にはテスターをグルーピングできる機能があるが、それらの管理(テストメンバーの取得や追加)も可能。

IMG_6881.PNG

include=betaTesters を付加することで各メンバーの詳細な情報も一度に取得可能。

IMG_6884.PNG

Errors

エラーの場合は次のようなJSONが返される。

スクリーンショット 2018-06-08 15.49.03.png

Access and authentication

APIアクセスにはトークンが必要。トークンを使用せずにAPIにアクセスすると NOT_AUTHORIZED エラーになる。

スクリーンショット 2018-06-08 15.50.06.png

トークンは Public Key, Private Key から構成される。
前者はアップルのサーバーに保存されるが、後者はApp Store Connectから一度だけダウンロードできる(デモでは .p8 ファイルで保存されていた)。

IMG_6891.PNG

トークンを構成するキーなどはApp Store Connectから確認できる。

IMG_6892.PNG

Private Keyはアップルでは管理しないので、ちゃんと自分で管理してね。間違っても拡散しないように。

IMG_6893.PNG

JWT(JSON Web Token) を構成するフィールド。

IMG_6896.PNG

これらの情報をもとにトークンを生成する。

IMG_6899.PNG

APIリクエストの際、トークンを Authorization: に含めることで情報が取得できるようになる。

IMG_6900.PNG

Best practices

  • Private Key をしっかり保管しましょう
  • トークンは有効期限内であれば再利用しましょう
  • 詳しくはドキュメントを読んでね

リリース時期

App Store Connect APIはこの夏、利用可能になるとのことです。

スクリーンショット 2018-06-08 16.22.50.png

楽しみですね!:relaxed: