4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FlutterアプリをBitriseを使ってApp Store Connectにアップする手順まとめ

Posted at

この記事は?

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をクリックします。
  • PlatformiOS, tvOS, watchOSを選択、Descriptionにはアプリの説明を、Bundle IDはXcodeのSigning & CapabilitiesBundle 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のアカウントページのSecurityPersonal access tokenを生成し、それをTerminalにペーストしてエンターキーを押します。
  • どのプロジェクトにアップするかを聞かれるので、数字で選択しエンターキーを押します。
  • プロジェクトのWorkflowエディタに移動し、Code SiginingタブにProvisioning ProfileCode Sigining Certificatesがアップロードされている事を確認します。

Workflow設定を追加

  • WorkflowメニューのWorkflowsを開きます。
  • Activate SSH Keyの上にワークフローCertificate and profile installerを追加します。
  • Flutter Testの次にFlutter Buildを追加します。以下設定を変更します。
    • Platformbothからiosに変更します。
  • Flutter Buildの次にXcode Archive & Export for iOSを追加します。以下設定を変更します。
    • Select method exportapp-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はレビューが必要かどうかを選択します。
  • 設定が終わったら右上の「⌘+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パスワード)

Bitbriseの設定からApple Developer Connectionへ接続

  • Bitbriseの右上のアイコンをクリックしAccount settingsをクリックします。
  • 左のメニューから「Apple Developer Account」をクリックします。
  • 「Connect」ボタンをクリックしApple IDにログインします。

Workflowのアップデート他

  • Workflowエディターのワークフローのアイコンの右上に赤丸が付いているものはアップデートがあるので、現時点での最新版にアップデートします。
    • ワークフローをクリックします。
    • Versionのプルダウンから最新のものを選びます。
  • Flutter InstallでSDKのバージョンを指定します。
    • Flutter SDK git repository versionv1.12.13+hotfix.7(2020/02/03日時点)に設定します。
    • Update to the lates versiontrueに設定します。
  • 設定が終わったら右上の「⌘+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の登録など

ここから先は色々なサイトで書かれていたので省略。

最後に

久々にアプリを作っていて浦島太郎状態です。やっぱり最新動向はちゃんと追わないとだめですね。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?