iOS アプリを構築してリリースする
このガイドでは、リリースの段階的なチュートリアルを提供します。 Flutter アプリをアプリストアとテストフライト。
予選
アプリをビルドしてリリースするには Xcode が必要です。あなた このガイドに従うには、macOS を実行しているデバイスを使用する必要があります。
アプリのリリースプロセスを開始する前に、 それが満たされていることを確認してください りんごアプリレビューガイドライン。
アプリを App Store に公開するには、 最初に登録する必要がありますApple 開発者プログラム。 さまざまな詳細について読むことができます Appleのメンバーシップオプションメンバーシップの選択ガイド。
App Store Connect にアプリを登録する
アプリのライフサイクルを管理しますApp Store コネクト(以前の iTunes Connect)。 アプリの名前と説明を定義し、スクリーンショットを追加します。 価格を設定し、App Store と TestFlight へのリリースを管理します。
アプリの登録には 2 つの手順が必要です。 バンドル ID と、App Store Connect でのアプリケーション レコードの作成。
App Store Connect の詳細な概要については、以下を参照してください。App Store コネクトガイド。
バンドルIDを登録する
すべての iOS アプリケーションはバンドル ID に関連付けられています。 Apple に登録された一意の識別子。 アプリのバンドル ID を登録するには、次の手順に従います。
- を開きますアプリID開発者アカウントのページ。
- クリック+新しいバンドル ID を作成します。
- アプリ名を入力し、選択します明示的なアプリIDをクリックし、IDを入力します。
- アプリが使用するサービスを選択し、続く。
- 次のページで内容を確認し、 をクリックします。登録バンドルIDを登録します。
App Store Connectでアプリケーションレコードを作成する
App Store Connect にアプリを登録します。
- 開けるApp Store コネクトブラウザで。
- App Store Connect ランディング ページで、 をクリックします。私のアプリ。
- クリック+[マイ アプリ] ページの左上隅にある 次に選択します新しいアプリ。
- 表示されるフォームにアプリの詳細を入力します。 「プラットフォーム」セクションで、「iOS」がチェックされていることを確認します。 Flutter は現在 tvOS をサポートしていないため、 そのチェックボックスはオフのままにしておきます。クリック作成。
- アプリのアプリケーション詳細に移動し、選択しますアプリ情報サイドバーから。
- 「一般情報」セクションで、バンドルIDを選択します。 前の手順で登録したものです。
詳細な概要については、を参照してください。アカウントにアプリを追加する。
Xcode プロジェクト設定を確認する
この手順では、最も重要な設定の確認について説明します。 Xcode ワークスペース内。 詳細な手順と説明については、を参照してください。アプリ配布の準備をする。
Xcode でターゲットの設定に移動します。
- 次のコマンドを実行して、プロジェクト内のデフォルトの Xcode ワークスペースを開きます。
open ios/Runner.xcworkspace
ターミナルウィンドウで Flutter プロジェクトのディレクトリ。 - アプリの設定を表示するには、ランナーのターゲット Xcodeナビゲーター。
最も重要な設定を確認します。
の中に身元のセクション全般的タブ:
Display Name
- アプリの表示名。
Bundle Identifier
- App Store Connectに登録したアプリID。
の中に署名と機能タブ:
Automatically manage signing
- Xcode がアプリ署名を自動的に管理するかどうか
そしてプロビジョニング。これは設定されています
true
デフォルトでは、 ほとんどのアプリにはこれで十分です。より複雑なシナリオの場合は、 を参照してくださいコード署名ガイド。 Team
- 登録した Apple Developer に関連付けられたチームを選択します アカウント。必要に応じて選択しますアカウントを追加する…、 次に、この設定を更新します。
の中に導入のセクションビルド設定タブ:
iOS Deployment Target
- アプリがサポートする最小の iOS バージョン。 Flutter は iOS 11 以降をサポートします。アプリまたはプラグインの場合 新しい API を使用する Objective-C または Swift コードを含める iOS 11 よりも古い場合は、この設定を必要な最新のバージョンに更新します。
の全般的プロジェクト設定のタブは次のようになります。 以下:
アプリ署名の詳細な概要については、を参照してください。署名証明書の作成、エクスポート、削除。
アプリの導入バージョンの更新
あなたが変わったらDeployment Target
Xcode プロジェクト内で、
開けるios/Flutter/AppframeworkInfo.plist
Flutter アプリ内で
そして更新しますMinimumOSVersion
一致する値。
アプリアイコンを追加する
新しい Flutter アプリが作成されると、プレースホルダー アイコン セットが作成されます。 この手順では、これらのプレースホルダー アイコンを アプリのアイコン:
- を確認してくださいiOSアプリのアイコンガイドライン。
- Xcode プロジェクト ナビゲーターで、次を選択します。
Assets.xcassets
の中にRunner
フォルダ。プレースホルダー アイコンを独自のアプリ アイコンで更新します。 - 次を使用してアプリを実行して、アイコンが置き換えられたことを確認します。
flutter run
。
起動画像を追加する
アプリのアイコンと同様に、 プレースホルダーの起動画像を置き換えることもできます。
- Xcode プロジェクト ナビゲーターで、
選択する
Assets.xcassets
の中にRunner
フォルダ。 プレースホルダーの起動イメージを独自の起動イメージで更新します。 - アプリをホットリスタートして、新しい起動イメージを確認します。
(使用しないでください
hot reload
。)
ビルド アーカイブを作成し、App Store Connect にアップロードする
開発中は、ビルド、デバッグ、テストを行ってきました。 とデバッグ構築します。アプリをユーザーに配布する準備ができたら App Store または TestFlight では、リリース建てる。
アプリのビルド番号とバージョン番号を更新する
アプリのデフォルトのバージョン番号は、1.0.0
。
更新するには、次の場所に移動します。pubspec.yaml
ファイル
そして、次の行を更新します。
version: 1.0.0+1
バージョン番号はドットで区切られた 3 つの数字です。
そのような1.0.0
上の例では、その後にオプションの
ビルド番号など1
上の例では、+
。
バージョンとビルド番号の両方を上書きできます。flutter build ipa
指定することで--build-name
と--build-number
、
それぞれ。
iOSでは、build-name
用途CFBundleShortVersionString
その間build-number
用途CFBundleVersion
。
iOS のバージョン管理について詳しくは、次の URL を参照してください。コア基盤キーApple 開発者サイトで。
オーバーライドすることもできますpubspec.yaml
Xcode でのビルド名と番号:
- 開ける
Runner.xcworkspace
あなたのアプリの中でios
フォルダ。 - 選択するランナーXcode プロジェクト ナビゲーターで、ランナー設定ビューのサイドバーのターゲット。
- [ID] セクションで、バージョンユーザー側に向けて 公開したいバージョン番号。
- [ID] セクションで、建てる一意の識別子 App Store Connect でこのビルドを追跡するために使用されるビルド番号。 各アップロードには一意のビルド番号が必要です。
アプリバンドルを作成する
走るflutter build ipa
Xcode ビルド アーカイブを生成する (.xcarchive
ファイル)
あなたのプロジェクトの中でbuild/ios/archive/
ディレクトリと App Store アプリ
バンドル (.ipa
ファイル)内build/ios/ipa
。
を追加することを検討してください。--obfuscate
と--split-debug-info
にフラグを立てるDartコードを難読化するそれをさらに難しくするために
リバースエンジニアリングする。
App Store に配布しない場合は、オプションで次のことを行うことができます。
別のものを選択してくださいエクスポート方法に
オプションの追加--export-method ad-hoc
、--export-method development
また--export-method enterprise
。
App Bundle を App Store Connect にアップロードする
アプリバンドルが作成されたら、次の場所にアップロードします。App Store コネクトいずれかによって:
-
インストールして開きますApple Transport macOS アプリ。 をドラッグ アンド ドロップします。
build/ios/ipa/*.ipa
アプリバンドルをアプリに追加します。 -
または、コマンド ラインから次のコマンドを実行してアプリ バンドルをアップロードします。
xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey your_api_key --apiIssuer your_issuer_id
走る
man altool
App Store Connect API キーを使用して認証する方法の詳細については、「App Store Connect API キーを使用して認証する方法」を参照してください。 -
またはオープン
build/ios/archive/MyApp.xcarchive
Xcodeで。クリックアプリの検証ボタン。問題が報告された場合は、 それらに対処し、別のビルドを作成します。同じものを再利用できます アーカイブをアップロードするまでは、ビルド ID を保持します。
アーカイブが正常に検証されたら、アプリを配布する。
ビルドのステータスを追跡できます。 アプリの詳細ページの「アクティビティ」タブApp Store コネクト。 30 分以内に次のことを通知するメールが届きます。 ビルドは検証され、テスターにリリースできるようになりました テストフライトで。この時点でリリースするかどうかを選択できます TestFlight で、またはアプリを App Store にリリースしてください。
詳細については、を参照してください。アプリを App Store Connect にアップロードする。
Codemagic CLI ツールを使用してビルド アーカイブを作成する
この手順では、ビルド アーカイブの作成とアップロードについて説明します。 Flutter ビルド コマンドを使用してビルドを App Store Connect に接続する とCodemagic CLI ツールターミナルで実行される Flutter プロジェクト ディレクトリ内。これにより、ビルド アーカイブを作成できるようになります。 一時キーチェーン内の配布証明書を完全に制御 ログインキーチェーンから隔離されています。
-
Codemagic CLI ツールをインストールします。
pip3 install codemagic-cli-tools
-
を生成する必要がありますApp Store Connect APIキーApp Manager にアクセスして、App Store Connect で操作を自動化します。作る 後続のコマンドをより簡潔にするには、次の環境変数を設定します。 新しいキー: 発行者 ID、キー ID、および API キー ファイル。
export APP_STORE_CONNECT_ISSUER_ID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee export APP_STORE_CONNECT_KEY_IDENTIFIER=ABC1234567 export APP_STORE_CONNECT_PRIVATE_KEY=`cat /path/to/api/key/AuthKey_XXXYYYZZZ.p8`
-
コード署名してビルド アーカイブをパッケージ化するには、iOS ディストリビューション証明書をエクスポートまたは作成する必要があります。
既存のものがある場合証明書をエクスポートできます。 証明書ごとに次のコマンドを実行して秘密キーを取得します。
openssl pkcs12 -in <certificate_name>.p12 -nodes -nocerts | openssl rsa -out cert_key
または、次のコマンドを実行して新しい秘密キーを作成できます。
ssh-keygen -t rsa -b 2048 -m PEM -f cert_key -q -N ""
後で、CLI ツールで秘密キーから新しい iOS ディストリビューションを自動的に作成することができます。
-
コード署名に使用する新しい一時キーチェーンを設定します。
keychain initialize
-
App Store Connect からコード署名ファイルを取得します。
app-store-connect fetch-signing-files $(xcode-project detect-bundle-id) \ --platform IOS \ --type IOS_APP_STORE \ --certificate-key=@file:/path/to/cert_key \ --create
どこ
cert_key
エクスポートされた iOS ディストリビューション証明書の秘密キーのいずれかです または、新しい証明書を自動的に生成する新しい秘密キー。証明書 秘密キーが App Store Connect に存在しない場合は、秘密キーから作成されます。 -
次に、取得した証明書をキーチェーンに追加します。
keychain add-certificates
-
取得したコード署名プロファイルを使用するように Xcode プロジェクト設定を更新します。
xcode-project use-profiles
-
Flutter の依存関係をインストールします。
flutter packages pub get
-
CocoaPods の依存関係をインストールします。
find . -name "Podfile" -execdir pod install \;
-
Flutter the iOS プロジェクトをビルドします。
flutter build ipa --release \ --export-options-plist=$HOME/export_options.plist
ご了承ください
export_options.plist
の出力ですxcode-project use-profiles
指図。 -
アプリを App Store Connect に公開します。
app-store-connect publish \ --path $(find $(pwd) -name "*.ipa")
-
前述したように、ログインキーチェーンを設定することを忘れないでください 認証の問題を回避するためのデフォルトとして マシン上のアプリの場合:
keychain use-login
30 分以内に次のことを通知するメールが届きます。 ビルドは検証され、テスターにリリースできるようになりました テストフライトで。この時点でリリースするかどうかを選択できます TestFlight で、またはアプリを App Store にリリースしてください。
TestFlight でアプリをリリースする
テストフライト開発者がアプリをプッシュできるようにします 内部および外部のテスターに。このオプションのステップは、 TestFlight でのビルドのリリースについて説明します。
- アプリのアプリケーションの「TestFlight」タブに移動します 詳細ページApp Store コネクト。
- 選択する内部テストサイドバーにあります。
- テスターに公開するビルドを選択し、クリックします。保存。
- 内部テスターの電子メール アドレスを追加します。 追加の内部ユーザーを追加できます。ユーザーと役割App Store Connectのページ、 ページ上部のドロップダウン メニューから利用できます。
詳細については、を参照してください。TestFlight を使用してアプリを配布する。
アプリを App Store にリリースする
アプリを世界にリリースする準備ができたら、 次の手順に従ってアプリを審査のために送信し、 App Store へのリリース:
- 選択する価格と入手可能性アプリのサイドバーから アプリケーション詳細ページApp Store コネクトそして、 必要な情報。
- サイドバーからステータスを選択します。これが最初の場合 このアプリのリリース、そのステータスは1.0 提出の準備をする。すべての必須フィールドに入力します。
- クリックレビューのために送信する。
Apple は、アプリのレビュープロセスが完了すると通知します。 アプリは指示に従ってリリースされます に指定されているバージョンリリースセクション。
詳細については、を参照してください。App Store を通じてアプリを配布する。
トラブルシューティング
のアプリを配布するガイドが提供するのは、 アプリを App Store にリリースするプロセスの詳細な概要。