Top View


Author Daiki Urata

Expo/EAS MetadataでApp Store情報をコード管理する

2023/10/04

はじめに

みなさんこんにちは、フロントエンドチーム「雅」の浦田です。

今回は面倒なApp Store情報の更新を便利にしてくれるEAS Metadataについてご紹介したいと思います。

Expoを使ってる方はご存知かと思いますが、ExpoにはEAS(Expo Application Services)というクラウドサービスがあり、EAS Build/EAS Submit/EAS Updateなどアプリ配信するためのさまざまな便利サービスがあります。

その一つのEAS Metadaについての記事になります。

EAS Metadataとは?

EAS Metadataは、Expoアプリをリリースする際のApp Store情報をコード化して管理、CLIで更新を自動化できるツールです。store.config.jsonファイルをプロジェクトに追加することで、わざわざApp Store Connectを開かずにApp Store情報を更新することができます。既存のアプリからstore.config.jsonを生成することもできます。

VS Codeを使用している場合は、VS Code Expoプラグインをインストールすることで、store.config.jsonファイルでの自動補完やサジェスト、警告が出るようになります。

まずは普通にApp Store情報を入力する

いきなりstore.config.jsonを作成してApp Store情報を入力させることもできますが、なんのプロパティを入力すれば良いか一つ一つ調べてstore.config.jsonを埋めていくのは効率が悪いので、まずは普通に App Store Connectにアクセスして必要箇所を埋めていくことをおすすめします。

store.config.jsonを作成する

App Store Connectでの入力が終わったらプロジェクトルートで以下コマンドを実行してstore.config.jsonを作成します。

eas metadata:pull

すると以下のようなstore.config.jsonが生成されます(例は私が趣味でやっている個人開発アプリの情報です)。

{
  "configVersion": 0,
  "apple": {
    "version": "1.0.3",
    "copyright": "Daiki Urata",
    "release": {
      "automaticRelease": true
    },
    "info": {
      "en-US": {
        "description": "Prompt Manager is a prompt management tool designed for conversational AI.\nIt mainly offers the following features:\n\n1. Save frequently used prompts.\n2. Easily copy saved prompts.\n3. Generate dynamic prompts using forms.\n4. View the history of used prompts.\n",
        "keywords": [
          "ChatGPT",
          "prompt",
          "AI",
          "chatbot",
          "Generative AI"
        ],
        "releaseNotes": "- Minor bug fixes\n",
        "supportUrl": "https://prompt-manager.studio.site/",
        "title": "Prompt Manager",
        "subtitle": "Manage prompts for AI chatbots",
        "privacyPolicyUrl": "https://prompt-manager-app.web.app/privacy-policy.html"
      },
      "ja": {
        "description": "Prompt Managerは対話型AIのためのプロンプト(命令文)管理ツールです。\n主に以下のような機能を提供しています。\n\n1. よく使うプロンプトの保存\n2. 保存したプロンプトの簡単コピー\n3. フォームによる動的なプロンプト生成\n4. プロンプトの使用履歴の確認\n",
        "keywords": [
          "ChatGPT",
          "prompt",
          "AI",
          "対話型AI",
          "プロンプト",
          "命令文",
          "管理ツール",
          "生成AI",
          "Generative AI"
        ],
        "releaseNotes": "- 軽微なバグ修正\n",
        "supportUrl": "https://prompt-manager.studio.site/",
        "title": "Prompt Manager - 対話型AIのプロンプト管理",
        "subtitle": "対話型AIのためのプロンプト(命令文)管理ツール",
        "privacyPolicyUrl": "https://prompt-manager-app.web.app/privacy-policy.html"
      }
    },
    "categories": [
      "PRODUCTIVITY",
      "UTILITIES"
    ],
    "advisory": {
      "alcoholTobaccoOrDrugUseOrReferences": "NONE",
      "contests": "NONE",
      "gamblingSimulated": "NONE",
      "horrorOrFearThemes": "NONE",
      "matureOrSuggestiveThemes": "NONE",
      "medicalOrTreatmentInformation": "NONE",
      "profanityOrCrudeHumor": "NONE",
      "sexualContentGraphicAndNudity": "NONE",
      "sexualContentOrNudity": "NONE",
      "violenceCartoonOrFantasy": "NONE",
      "violenceRealistic": "NONE",
      "violenceRealisticProlongedGraphicOrSadistic": "NONE",
      "gambling": false,
      "unrestrictedWebAccess": false,
      "kidsAgeBand": null,
      "seventeenPlus": false
    },
    "review": {
      "firstName": "Daiki",
      "lastName": "Urata",
      "email": "prompt.manager@example.com",
      "phone": "+81 00 0000 00000",
      "demoRequired": false
    }
  }
}

このように英語(en-US)と日本語(ja)の情報を分けて書くこともできますし、アプリの説明文やリリースノートもここで更新することができます。

入力可能な各プロパティはドキュメント を参照してください。

EAS MetadataでApp Store情報を更新する

EAS Submitなどで新しくビルドしたバイナリをアップロードした後に、store.config.jsonを編集して新しいApp Store情報を反映させます。その場合は以下コマンドを実行します。

eas metadata:push

コマンドが成功したら、App Store Connectへアクセスして確認すると無事に更新されているはずです。

その他制約など(2023/10/4時点)

EAS Metadataはリリースされたばかりなので、まだまだ制約があります。

  • 現時点ではGoogle Play StoreはEAS Metadataではサポートされていません
  • EAS Metadataはまだベータ版のため、今後は破壊的変更がされる可能性があります
  • EAS MetadataでApp Store情報を更新するためには、先に新しいバイナリをアップロードする必要がある
  • EAS Metadataで更新できない情報もある(iOSのプレビューとスクリーンショット部分など)

おわりに

簡単ではありますが、EAS Metadataの使い方を紹介しました。

App Storeの情報をコード化することで、Gitで差分や履歴を追うこともできるようになりますし、更新の自動化も可能になり、とても便利なツールです。

しかしまだまだ制約もあるので、個人開発レベルで試すのは良いですが、実戦投入するのはGoogle Play Store対応がされたり、正式リリース後がやはり良さそうです。

Daiki Urata

Daiki Urata

Twitter X

フロントエンド/モバイルアプリなどを主に開発しています。