React Nativeでアプリを書くことができたとしても、アプリをリリースする先はiOSのApp Storeであったり、Google Playだったりします。リリースするためには各プラットフォームでの作法や、コード上でやっておかないと行けないことが色々とあります。

React Nativeで両プラットフォームに対応しようとすると、この辺の手続きに関しても両プラットフォームのことを知っておかないといけないため、なかなかハードです。僕の場合はiOSネイティブから入っているのでiOS側は勝手知ったる作業なのですが、Androidのほうは手探りでした。

ということで、自分のための頭の整理も兼ねて箇条書きレベルでまとめておこうかなと思いました(まとめたところで、プラットフォーム側のアップデートとかでよく変わっちゃうんですけどね)。

ネイティブアプリ未経験の人が、React Nativeでアプリを作れたとしてもリリースまでに色々あるんだよーというのがわかってもらえたら幸いです。

iOS

コード側

  • アプリアイコンを用意する
    • ホーム画面
    • App Store
    • Push通知 などに使われる
    • 1024pxがあるとそこから一括で生成したりできるので便利
  • Info.plitでpermissionのメッセージを設定する
  • Capabilitiesで必要なフィーチャを有効にする
  • Distributionの証明書でcode signできるようにする
    • bundle id
    • → Dev Centerへの登録が必要
  • バージョン
    • バージョン番号
    • ビルド番号
    • 同一バージョン、同一ビルド番号はAppStoreConnectにアップロードできない

管理サイト側

App Store Connect(旧iTunes Connect)とDeveloper CenterみたいなAppleのサイトで登録やらなんやらを実施する必要があります。

Developer Center

  • https://developer.apple.com/account/
  • ビルド用の証明書の登録
  • アプリの登録
    • bundle id(アプリ固有のID)
    • アプリが使う機能の管理
    • Push通知
    • XxxKit など
  • 他にも色々
    • ↓この辺は最近はXcodeがやってくれる気もする
    • デバイスの管理
    • ビルド用プロビジョニングプロファイルの管理

App Store Connect

  • https://appstoreconnect.apple.com/
  • アプリの追加
    • 紹介文やカテゴリ、Rating、価格などの登録
    • スクリーンショット
    • 審査への提出
  • TestFlight
    • リリース前に実機に入れて試すプロセス
    • 内部テスターの追加(まずは自分を登録)
    • 外部テスターの追加
    • ベータテストする人を追加
    • (社内のメンバーだとしても内部テスターだと権限が強すぎるなどあるので、外部テスターにしてる)
  • メンバー管理

Android

Android側はあまり経験がないのでうろ覚えみたいなところもあり。

コード側

  • アプリアイコン
    • Google Play Storeやランチャー用
    • 通知用アイコン(透過に白のアイコンじゃないとだめ?)
  • AndroidManifestでpermissionの設定
  • バージョン
    • versionName
    • versionCode(全バージョンで共通管理のビルド番号ぽい扱い)
  • applicationId
  • ビルド時のkeystoreの管理

管理サイト側

  • Google Play Console
  • アプリの追加
    • 紹介文やRating、価格などを登録
    • スクリーンショットやヘッダー画像の登録
  • アルファ版、ベータ版の管理
  • 審査への提出

おわりに

粒度バラバラなのはあまり気にせず、ざーと書いてしまいました。個別の説明をほとんどしていないのにけっこうな量になっちゃいましたね。やってみるとハマって先にすすめないことがあったりしてプラットフォームの初心者には辛いところです。