この記事は?
Flutterを触っていてApp Store Connectにアップするのに手間取ったので備忘も兼ねて。
Apple Developerに加入
公式サイトからよしなに。
Flutterアプリの作成
公式サイトやQiitaを参考に作成します。
Bitriseで利用するため、GitHubやBitbucketなどにpushしておきます。
Bitriseにアカウントを作る
公式サイトからアカウントを作成します。最初にアカウントを作るとお試しでDeveloperアカウントが利用出来ます。お試し期間が過ぎるとFreeアカウント(1ジョブ10分までなど制限あり)になりますので、注意が必要です。
XcodeからSigingの設定を行う
- Flutterプロジェクトの直下にある
ios
フォルダをIntelliJ IDEAやAndroid Studioで右クリックしFlutter > Open iOS module in Xcode
を選び、Xcodeを開きます。Xcodeで${WORK_DIR}/ios/Runner.xcodeproj
を開いてもOK。 - 開いたら左ペインのツリーのてっぺん「Runner」をダブルクリックし、中央ペインから
Signing & Capabilities
選択します。 -
Automaticaly manage signing
がチェックされていることを確認し、Team
には自分や会社のApple Developerアカウントを選択します。追加済みでなければAdd an Account...
でアカウントを追加してください。 - その後、メニューの
Xcode > Preferences...
から設定を開き、Accounts
タブを開きます。 - 自分のアカウントを選択し(無ければ追加し)、
Manage Certificates...
をクリックします。 - 左下の
+
をクリックし、Apple Distribution
を選択し、証明書が追加されたらDone
をクリックします。 - この状態でGitHubやBitbucketなどに最新の状態をpushしておきましょう。
Apple DeveloperサイトでIdentifierとProfileの設定
-
公式サイトの
メニュー > account
からログインします。 -
Certificates, Identifiers & Profiles
を開きます。 -
Identifiers
を開きます。 - 「+」ボタンをクリックし、
App IDs
を選択、Continu
をクリックします。 -
Platform
はiOS, tvOS, watchOS
を選択、Description
にはアプリの説明を、Bundle ID
はXcodeのSigning & Capabilities
のBundle Identifiler
に記載されているものを記入します。 -
Capabilities
でアプリに利用する機能を選択し、Continue
をクリックします。 - 内容を確認し
Register
をクリックします。 - 次に
Profiles
を開きます。 - 「+」ボタンをクリックし、
App Store
を選択、Continue
をクリックします。 - 先ほど追加した
App ID
を選択し、Continue
をクリックします。 - Xcodeで作成した
Distribution
の証明書を選択し、Continue
をクリックします。 -
Provisioning Profile Name
に説明を書いて、Generate
をクリックします。 - Xcodeの
Preferences...
を開き、Accounts
の自分のApple IDでDownload Manual Profiles
をクリックします。
iTunes Connectサイトでアプリを登録する
- 公式サイトにログインします。
-
マイApp
を開きます。 - 「+」ボタンから
新規 App
を選択します。 -
新規 App
モーダル画面で、プラットフォームはiOS、名前、プライマリ言語、先ほど選択したバンドルIDを選択し、SKUはApp Store内で一意になるような物を記入します。記入したら作成
をクリックします。
Bitriseにリポジトリを追加する
- Dashboardや右上の「+」ボタンなどから、webUIを使って追加していきます。
- CHOOSE ACCOUNTでBitriseのアカウントを選択し、アプリの設定を公開(Public)するか非公開(Private)にするかを選択し、Nextをクリックします。
- GitHubやBitbucketからリポジトリを選択します。まだGitHubなどに接続していなければ、この画面で接続が可能です。
-
Setup repository access
では別にプライベートリポジトリーを使う(プライベートのモジュールなどを使っている場合)に、追加でリポジトリの設定をするかを聞かれます。今回私はプライベートリポジトリーを使っていないので「No, auto-add SSH Key」を選択しました。SSH公開鍵が表示されるのでリポジトリー側に設定します。 -
Choose branch
で対象となるブランチを選択します。ここではmaster
に設定しました。 -
VALIDATING REPOSITORY
が動き出します。しばらく時間がかかるのでコーヒーでも飲みましょう(と書いてあります)。 -
Project build configuration
ではFlutter
を選びます。 -
Select Run tests found in the project
ではテストを行うかどうかを選択します。 -
Select ipa export method
では、App Storeに提出するのでapp-store
を選びます。 -
App icon
でアイコン画像をアップロードします。 -
Webhook setup
ではRegister a Webhook for me!
を選択します。 - すべて終わったら右上の
FINISH
をクリックします。 - 最初のビルドが自動的に走ります。
BitrizeでiOSアプリのビルド設定を追加する
証明書ファイルのアップロード
codesigndoc
を使って証明書をBitriseにアップロードします。公式サイトの記述を参考に進めます。
- Terminalを開きます。
- Flutterプロジェクトに移動します。
- 以下のコードをTerminalで実行します。
Terminal
bash -l -c "$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap-xcode.sh)"
- iOSプロジェクトとmacOSプロジェクトの選択画面がでるのでiOSに対応する番号を入力し、エンターキーを押します。
- キーチェーンアクセスの許諾が出るので許可します。
- ipaファイルの署名に使うモード選択が出るので2(app-store)を入力し、エンターキーを押します。
- 追加で他のプロファイルを選択するか聞かれるので
NO
と答えます。 -
Do you want to upload (以下略)
と聞かれるので、yes
と答えます。 - Bitbriseのアカウントページの
Security
でPersonal access token
を生成し、それをTerminalにペーストしてエンターキーを押します。 - どのプロジェクトにアップするかを聞かれるので、数字で選択しエンターキーを押します。
- プロジェクトのWorkflowエディタに移動し、
Code Sigining
タブにProvisioning Profile
とCode Sigining Certificates
がアップロードされている事を確認します。
Workflow設定を追加
- Workflowメニューの
Workflows
を開きます。 -
Activate SSH Key
の上にワークフローCertificate and profile installer
を追加します。 -
Flutter Test
の次にFlutter Build
を追加します。以下設定を変更します。-
Platform
をboth
からios
に変更します。
-
-
Flutter Build
の次にXcode Archive & Export for iOS
を追加します。以下設定を変更します。-
Select method export
をapp-store
に設定。
-
- ワークフローの最後に
Deploy to iTunes Connect
を追加します。以下設定を変更します。- Apple IDに自分のApple IDを登録します。
- Key : $APPLE_ID
- Value : (自分のApple ID)
- Passwordに自分のApple IDのパスワードを登録します。
- Key : $APPLE_ID_PASSWORD
- Value : (自分のApple IDのパスワード)
- Application Specific PasswordにApp用パスワード(AppleIDのサイトで設定)を登録します。
- Key : $APPLE_ID_APP_PASSWORD
- Value : (自分のAppパスワード)
- App Apple IDにiTunes ConnectのマイAppのApp情報からApple IDを転記します。
- App Bundle IDに先ほど指定したマイAppのBundle IDを転記します。
- Submit for Reviewはレビューが必要かどうかを選択します。
- Apple IDに自分のApple IDを登録します。
- 設定が終わったら右上の「⌘+S」をクリックします。
$FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORDを設定
- 先ほど設定した$APPLE_ID_APP_PASSWORDと同じ物を$FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORDという名前で追加で登録します。(なぜ設定が2つあるのか詳細は不明)。
- Workflowエディターの
Secrets
タブを開きます。 -
Add new
をクリックして以下を追加します。- Key : $FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD
- Value : (自分のAppパスワード)
- Workflowエディターの
Bitbriseの設定からApple Developer Connectionへ接続
- Bitbriseの右上のアイコンをクリックし
Account settings
をクリックします。 - 左のメニューから「Apple Developer Account」をクリックします。
- 「Connect」ボタンをクリックしApple IDにログインします。
Workflowのアップデート他
- Workflowエディターのワークフローのアイコンの右上に赤丸が付いているものはアップデートがあるので、現時点での最新版にアップデートします。
- ワークフローをクリックします。
-
Version
のプルダウンから最新のものを選びます。
- Flutter InstallでSDKのバージョンを指定します。
-
Flutter SDK git repository version
をv1.12.13+hotfix.7
(2020/02/03日時点)に設定します。 -
Update to the lates version
をtrue
に設定します。
-
- 設定が終わったら右上の「⌘+S」をクリックします。
Apple IDとプロジェクトの紐付け
- プロジェクトの
Team
タブを開きます。 -
Connected Apple Developer Portal Account
で自分のApple Developerアカウントを選択し、Save
をクリックします。 -
Test the apple developer portal connection
をクリックし正しく動作する事を確認します(エラーが出なければOK)。
ビルドの実行とApp Store ConnectへのIPAファイルのアップロード
ダッシュボードやプロジェクトのページからビルドを実行します。正しく設定されていればApp Store ConnectにIPAファイルがアップロードされるはずです。
TestFlightの登録など
ここから先は色々なサイトで書かれていたので省略。
最後に
久々にアプリを作っていて浦島太郎状態です。やっぱり最新動向はちゃんと追わないとだめですね。