<

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 を登録するには、次の手順に従います。

  1. を開きますアプリID開発者アカウントのページ。
  2. クリック+新しいバンドル ID を作成します。
  3. アプリ名を入力し、選択します明示的なアプリIDをクリックし、IDを入力します。
  4. アプリが使用するサービスを選択し、続く
  5. 次のページで内容を確認し、 をクリックします。登録バンドルIDを登録します。

App Store Connectでアプリケーションレコードを作成する

App Store Connect にアプリを登録します。

  1. 開けるApp Store コネクトブラウザで。
  2. App Store Connect ランディング ページで、 をクリックします。私のアプリ
  3. クリック+[マイ アプリ] ページの左上隅にある 次に選択します新しいアプリ
  4. 表示されるフォームにアプリの詳細を入力します。 「プラットフォーム」セクションで、「iOS」がチェックされていることを確認します。 Flutter は現在 tvOS をサポートしていないため、 そのチェックボックスはオフのままにしておきます。クリック作成
  5. アプリのアプリケーション詳細に移動し、選択しますアプリ情報サイドバーから。
  6. 「一般情報」セクションで、バンドルIDを選択します。 前の手順で登録したものです。

詳細な概要については、を参照してください。アカウントにアプリを追加する。

Xcode プロジェクト設定を確認する

この手順では、最も重要な設定の確認について説明します。 Xcode ワークスペース内。 詳細な手順と説明については、を参照してください。アプリ配布の準備をする。

Xcode でターゲットの設定に移動します。

  1. 次のコマンドを実行して、プロジェクト内のデフォルトの Xcode ワークスペースを開きます。open ios/Runner.xcworkspaceターミナルウィンドウで Flutter プロジェクトのディレクトリ。
  2. アプリの設定を表示するには、ランナーのターゲット 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 よりも古い場合は、この設定を必要な最新のバージョンに更新します。

全般的プロジェクト設定のタブは次のようになります。 以下:

Xcode Project Settings

アプリ署名の詳細な概要については、を参照してください。署名証明書の作成、エクスポート、削除。

アプリの導入バージョンの更新

あなたが変わったらDeployment TargetXcode プロジェクト内で、 開けるios/Flutter/AppframeworkInfo.plistFlutter アプリ内で そして更新しますMinimumOSVersion一致する値。

アプリアイコンを追加する

新しい Flutter アプリが作成されると、プレースホルダー アイコン セットが作成されます。 この手順では、これらのプレースホルダー アイコンを アプリのアイコン:

  1. を確認してくださいiOSアプリのアイコンガイドライン。
  2. Xcode プロジェクト ナビゲーターで、次を選択します。Assets.xcassetsの中にRunnerフォルダ。プレースホルダー アイコンを独自のアプリ アイコンで更新します。
  3. 次を使用してアプリを実行して、アイコンが置き換えられたことを確認します。flutter run

起動画像を追加する

アプリのアイコンと同様に、 プレースホルダーの起動画像を置き換えることもできます。

  1. Xcode プロジェクト ナビゲーターで、 選択するAssets.xcassetsの中にRunnerフォルダ。 プレースホルダーの起動イメージを独自の起動イメージで更新します。
  2. アプリをホットリスタートして、新しい起動イメージを確認します。 (使用しないでください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.yamlXcode でのビルド名と番号:

  1. 開けるRunner.xcworkspaceあなたのアプリの中でiosフォルダ。
  2. 選択するランナーXcode プロジェクト ナビゲーターで、ランナー設定ビューのサイドバーのターゲット。
  3. [ID] セクションで、バージョンユーザー側に向けて 公開したいバージョン番号。
  4. [ID] セクションで、建てる一意の識別子 App Store Connect でこのビルドを追跡するために使用されるビルド番号。 各アップロードには一意のビルド番号が必要です。

アプリバンドルを作成する

走るflutter build ipaXcode ビルド アーカイブを生成する (.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 コネクトいずれかによって:

  1. インストールして開きますApple Transport macOS アプリ。 をドラッグ アンド ドロップします。build/ios/ipa/*.ipaアプリバンドルをアプリに追加します。

  2. または、コマンド ラインから次のコマンドを実行してアプリ バンドルをアップロードします。

    xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa --apiKey your_api_key --apiIssuer your_issuer_id
    

    走るman altoolApp Store Connect API キーを使用して認証する方法の詳細については、「App Store Connect API キーを使用して認証する方法」を参照してください。

  3. またはオープンbuild/ios/archive/MyApp.xcarchiveXcodeで。

    クリックアプリの検証ボタン。問題が報告された場合は、 それらに対処し、別のビルドを作成します。同じものを再利用できます アーカイブをアップロードするまでは、ビルド ID を保持します。

    アーカイブが正常に検証されたら、アプリを配布する

ビルドのステータスを追跡できます。 アプリの詳細ページの「アクティビティ」タブApp Store コネクト。 30 分以内に次のことを通知するメールが届きます。 ビルドは検証され、テスターに​​リリースできるようになりました テストフライトで。この時点でリリースするかどうかを選択できます TestFlight で、またはアプリを App Store にリリースしてください。

詳細については、を参照してください。アプリを App Store Connect にアップロードする。

Codemagic CLI ツールを使用してビルド アーカイブを作成する

この手順では、ビルド アーカイブの作成とアップロードについて説明します。 Flutter ビルド コマンドを使用してビルドを App Store Connect に接続する とCodemagic CLI ツールターミナルで実行される Flutter プロジェクト ディレクトリ内。これにより、ビルド アーカイブを作成できるようになります。 一時キーチェーン内の配布証明書を完全に制御 ログインキーチェーンから隔離されています。

  1. Codemagic CLI ツールをインストールします。

    pip3 install codemagic-cli-tools
    
  2. を生成する必要があります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`
    
  3. コード署名してビルド アーカイブをパッケージ化するには、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 ディストリビューションを自動的に作成することができます。

  4. コード署名に使用する新しい一時キーチェーンを設定します。

    keychain initialize
    
  5. 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 に存在しない場合は、秘密キーから作成されます。

  6. 次に、取得した証明書をキーチェーンに追加します。

    keychain add-certificates
    
  7. 取得したコード署名プロファイルを使用するように Xcode プロジェクト設定を更新します。

    xcode-project use-profiles
    
  8. Flutter の依存関係をインストールします。

    flutter packages pub get
    
  9. CocoaPods の依存関係をインストールします。

    find . -name "Podfile" -execdir pod install \;
    
  10. Flutter the iOS プロジェクトをビルドします。

    flutter build ipa --release \
        --export-options-plist=$HOME/export_options.plist
    

    ご了承くださいexport_options.plistの出力ですxcode-project use-profiles指図。

  11. アプリを App Store Connect に公開します。

    app-store-connect publish \
        --path $(find $(pwd) -name "*.ipa")
    
  12. 前述したように、ログインキーチェーンを設定することを忘れないでください 認証の問題を回避するためのデフォルトとして マシン上のアプリの場合:

    keychain use-login
    

30 分以内に次のことを通知するメールが届きます。 ビルドは検証され、テスターに​​リリースできるようになりました テストフライトで。この時点でリリースするかどうかを選択できます TestFlight で、またはアプリを App Store にリリースしてください。

TestFlight でアプリをリリースする

テストフライト開発者がアプリをプッシュできるようにします 内部および外部のテスターに​​。このオプションのステップは、 TestFlight でのビルドのリリースについて説明します。

  1. アプリのアプリケーションの「TestFlight」タブに移動します 詳細ページApp Store コネクト。
  2. 選択する内部テストサイドバーにあります。
  3. テスターに​​公開するビルドを選択し、クリックします。保存
  4. 内部テスターの電子メール アドレスを追加します。 追加の内部ユーザーを追加できます。ユーザーと役割App Store Connectのページ、 ページ上部のドロップダウン メニューから利用できます。

詳細については、を参照してください。TestFlight を使用してアプリを配布する。

アプリを App Store にリリースする

アプリを世界にリリースする準備ができたら、 次の手順に従ってアプリを審査のために送信し、 App Store へのリリース:

  1. 選択する価格と入手可能性アプリのサイドバーから アプリケーション詳細ページApp Store コネクトそして、 必要な情報。
  2. サイドバーからステータスを選択します。これが最初の場合 このアプリのリリース、そのステータスは1.0 提出の準備をする。すべての必須フィールドに入力します。
  3. クリックレビューのために送信する

Apple は、アプリのレビュープロセスが完了すると通知します。 アプリは指示に従ってリリースされます に指定されているバージョンリリースセクション。

詳細については、を参照してください。App Store を通じてアプリを配布する。

トラブルシューティング

のアプリを配布するガイドが提供するのは、 アプリを App Store にリリースするプロセスの詳細な概要。