背景
普段、flutterで開発をしていて、Iosのbuildをする時に
、ProvisioningProfileとp12ファイルとcertificateとIdentifiers(バンドルID)が必要
になるが、これに付け加えて、開発環境と、本番環境を区別してアプリをbuild
しないといけない。用語が出てきてかなり初見だとかなりわかりづらいのでまとめる。
swift開発者にも通じる部分はあるのかなと思いましてあえて、flutterとtitleには入れていません。
Identifiers(バンドルID)・ProvisioningProfile・p12ファイル・certificateのロードマップ
アプリをbuildするとき、.ipa
を得るときに鍵を作って、署名が必要になる。その鍵を作る過程で用語が出てくるのとかなり戸惑うので、一旦何を行わなければならないのかを記す。
buildで署名をするときに使うのは、ProvisioingProfile
と.p12
を使う。
このProvisioningProfile
を作るまでの過程は大きく3つしないといけないことがある。
- certificateと
.p12
ファイルを作る。(キーチェーンアクセスから作成する) - バンドルIDを作る。
- 1.と2.を紐付けて
ProvisioingProfile
を作る
これができたら、CI/CDを組みます。
ここまでは、単に1つのアプリを作るまでの基礎知識です。
開発環境と本番環境の区別した時に、ストア側のアプリはどのように分ければよいか?
おそらく要望が、いくつか出てくると思われる
[要望その1]:BackEndのAPIが本番環境と開発環境分かれてる
以下のようにそれぞれBackendのendpointが分かれてる可能性がある。
https://api.hoge.com # production環境
https://api.dev.hoge.com # development環境
[要望その2]: TestFlightで開発環境、本番環境ともに確認したい。
[要望その3]: CI/CDでbuildして本番環境、開発環境確認したい。
本番環境、開発環境それぞれで開発して確認したい。
これを満たすworkflow
ルール
- 実際のアプリを、開発環境と本番環境で分けておく。
アプリレベルで分けておく
2. bundleIDも、以下のように分けておくが、certificateは、同一のものを使用する。
com.company.appName #production環境用
com.company.appName.dev #development環境用
3.本番環境と開発環境のBackendのAPIドメインは分ける
https://api.hoge.com # production環境
https://api.dev.hoge.com # development環境
4.環境わけのロールは以下の通り
開発環境の内部テスト #development環境
本番環境の内部テスト #staging-development環境
↓経営陣や限定されたclientが見る↓
本番環境の外部テスト #staging-production環境
ストアに流す #production環境
※xcrunをの-uと-pを設定するには、下記から作成できる。
xcrun altool --upload-app -t ios -f "build/ios/ipa/preview.ipa" -u "${{ secrets.APPLE_ID }}" -p "${{ secrets.APPLE_APP_PASS }}"