ないぱかの記録

ないぱかからあるぱかになれるか

【iOS】既存のリリースアプリのレーティング情報の取得方法

概要

fastlaneのdeliverを使っていて、オプションにapp_rating_config_path(アプリのレーティング情報が載ったjsonのパス)も設定できるけど、どこからその情報取得できるんです??となって調べたので備忘録として残します。

取得方法

1. App Store ConnectのAPIリクエストのトークンの生成する

App Store Connect(以下ASC)にあるレーティング情報が欲しいので、まずはASCにアクセスするためのトークンを生成します。

トークンを生成するために、ASCのAPIキーを作成します。
APIキーの作成方法については下記記事が画像付きで分かりやすかったのでそちらを参考にしてください。

zenn.dev

上記でAPIキーを生成すると以下3つが取得でき、これらを用いてトークンを生成します。

  • キーID
  • IssuerID
  • .p18ファイル

まず、トークンを作成するためにJWT.ioにアクセスします。

次に、Generating Tokens for API Requestsを元に、以下画像のようにHEADERPAYLOADVERIFY SIGNATUREを入力します。

https://user-images.githubusercontent.com/45661924/159005356-738761c0-d9bd-4856-a23f-933d265d6a28.png

iatexpはそれぞれトークン作成時間トークン有効期限UNIX時間です。
有効期間は作成時間から20分以内にする必要があります。

tool.konisimple.net

また、アプリのAppStoreのIDはASCの一般情報の「Apple ID」です。

https://user-images.githubusercontent.com/45661924/159010019-076a1585-4492-4d58-8b37-ae3fb58aebea.png

入力が完了すると、左側にエンコードされたトークンが生成されるので、それを用いてASCのAPIを叩いていきます。

JWT.ioはまだ使うのでそのままにしておきます。)

2. App Informationを取得する(appinfos用のidを取得する)

Read App Information

上記のAPIを叩いてまずはApp Informationを取得します。

先ほど生成したトークンをヘッダーに付与してAPIが叩ければなんでも良いのですが、自分は下記のようにVSCode拡張機能の「REST Client」を用いて叩いています。参考

GET https://api.appstoreconnect.apple.com/v1/apps/<アプリのAppStore ID>/appInfos
Authorization: Bearer <生成したトークン>

https://user-images.githubusercontent.com/45661924/159007066-4074d452-c09f-4824-a13b-864fac287413.png

するとレスポンスが下記のように返ってくるので、先ほどトークンを生成したJWT.ioで適当な値を入れていた「アプリのリソースID」にここで取得したidvalueを設定します。

https://user-images.githubusercontent.com/45661924/159007740-1d57e29d-5cb6-40cd-abdb-f7e1cfd553aa.png

そうするとトークンがまた変わるので、それをコピーしておきます。

3. レーティングに関する情報を取得する

GET /v1/appInfos/{id}/ageRatingDeclaration

最後に上記APIを叩きます。

先ほど生成したトークンをヘッダーにつけてAPIを叩くと…

GET https://api.appstoreconnect.apple.com/v1/<アプリのリソースID>/ageRatingDeclaration
Authorization: Bearer <生成したトークン>

https://user-images.githubusercontent.com/45661924/159008364-21917809-ebe0-417c-9de8-b4fba194f9b2.png

無事レーティング情報を取得できました!

https://user-images.githubusercontent.com/45661924/159008596-3ec8e817-7a14-4536-a36e-2cd72f70af53.png

fastlaneのapp_rating_config_pathに指定するjsonには上記からattributesvalueを転記すればOKです。

{
  "alcoholTobaccoOrDrugUseOrReferences": "NONE",
  "contests": "NONE",
  "gamblingAndContests": false,
  "gambling": false,
  "gamblingSimulated": "NONE",
  "kidsAgeBand": null,
  "medicalOrTreatmentInformation": "NONE",
  "profanityOrCrudeHumor": "NONE",
  "sexualContentGraphicAndNudity": "NONE",
  "sexualContentOrNudity": "NONE",
  "seventeenPlus": false,
  "horrorOrFearThemes": "NONE",
  "matureOrSuggestiveThemes": "NONE",
  "unrestrictedWebAccess": false,
  "violenceCartoonOrFantasy": "NONE",
  "violenceRealisticProlongedGraphicOrSadistic": "NONE",
  "violenceRealistic": "NONE"
}

まとめ

これでアプリのレーティングに関する情報もgitで管理できるようになりました!

少し面倒だったので、もっと簡単な方法があったらぜひ教えていただきたいです。🙏