英語で読む

次の方法で共有


App Center でReact Native iOS ビルドを構成する

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

詳細については、サポートタイムラインと代替手段に関するページを参照してください。

App Center では、React Native バージョン 0.34 以降で記述されたReact Nativeアプリをビルドできます。

iOS 用のReact Native アプリをビルドするには:

  1. リポジトリ サービス アカウント (Azure DevOps、Bitbucket、GitHub、VSTS など) に接続します。
  2. アプリが保存されているリポジトリとブランチを選択します。
  3. ビルドのプロジェクトまたはワークスペースと、ビルドするスキームを構成します。

注意

アプリを実際のデバイスで実行するには、有効なプロビジョニング プロファイルと証明書を使用してコード署名を行う必要があります。

1. リポジトリのリンク

まず、リポジトリ サービス アカウントを App Center に接続します。 アカウントが接続されたら、iOS プロジェクトが配置されているリポジトリを選択します。 リポジトリの管理者とプルのアクセス許可が必要です。

2. ブランチの選択

リポジトリを選択したら、ビルドするブランチを選択します。 既定では、すべてのアクティブなブランチが一覧表示されます。

3. 最初のビルドを設定する

最初のビルドの前に、React Native プロジェクトを構成する必要があります。

3.1. Project

プロジェクトの package.jsonを選択します。 App Center は、関連付けられている Xcode プロジェクト/ワークスペースを自動的に検出します。

3.2. Xcode バージョン

ドロップダウン リストからビルドを実行する Xcode バージョンを選択します。 トグル "レガシ ビルド システムを使用する" が の場合は On、プロジェクトまたはワークスペースの設定に関係なく、レガシ ビルド システムが使用されます。 トグル "従来のビルド システムを使用する" が の場合は Off、プロジェクトまたはワークスペースの設定からのビルド システム構成が使用されます。

注意

  • ワークスペース設定をリポジトリにコミットする必要がある
  • ワークスペース設定がコミットされていない場合は、最新のビルド システムが使用されます

3.3 Node.js バージョン

ビルドに使用する Node.js バージョンを選択します。 Node.js バージョンを選択する方法の詳細

3.4. ビルド トリガー

既定では、開発者が構成されたブランチにプッシュするたびに、新しいビルドがトリガーされます。 新しいビルドを手動でトリガーする場合は、構成ウィンドウでこの設定を変更できます。

3.5. ビルド番号をインクリメントする

有効にすると、 CFBundleVersion アプリのプロジェクトの Info.plist 内の がビルドごとに自動的にインクリメントされます。 変更はビルド前に行われ、リポジトリにコミットされません。

3.6. コード署名

ビルドが成功すると、ファイルが .ipa 生成されます。 デバイスにビルドをインストールするには、有効なプロビジョニング プロファイルと証明書を使用してビルドに署名する必要があります。 ブランチから生成されたビルドに署名するには、構成ウィンドウでコード署名を有効にし、 プロビジョニング プロファイル (.mobileprovision ファイル) と有効な証明書 (.p12) と証明書のパスワードをアップロードします。

Xcode プロジェクトの設定は、アップロードするファイルと互換性がある必要があります。 App Center の iOS コード署名Apple Developer のドキュメントの詳細を確認してください。

アプリまたは watchOS 拡張機能を使用してアプリに署名するには、拡張機能ごとに追加のプロビジョニング プロファイルが必要です。

3.7. 実際のデバイスで成功したビルドを起動する

新しく生成された .ipa ファイルを使用して、アプリが実際のデバイスで起動するかどうかをテストします。起動テストでは、ビルド時間の合計に約 10 分が追加されます。 起動テストを構成する方法の詳細を参照してください。

3.8. CocoaPods

App Center は選択したブランチをスキャンし、Podfile が見つかると、すべてのビルドの開始時に自動的にステップが実行 pod install されます。 これにより、すべての依存関係が確実にインストールされます。

3.9. 配布グループに配布する

ブランチから正常にビルドされるたびに、以前に作成した配布グループに配布されるように構成します。 [配布] セクション内から新しい配布グループを追加します。 アプリにアクセスできるすべてのユーザーを含む、"コラボレーター" という名前の既定の配布グループが常に存在します。

構成を保存すると、新しいビルドが自動的に開始されます。

4. ビルド結果

ビルドは、次のいずれかの状態にすることができます。

  • queued - 使用可能なリソースを待機している間、ビルドがエンキューされます
  • building - ビルドが実行され、定義済みのタスクが実行されている
  • succeeded - ビルドが正常に完了しました
  • failed - ビルドが正常に完了しませんでした。ビルド ログをダウンロードして検査して、問題のトラブルシューティングを行う
  • canceled - ユーザー アクションによってビルドが取り消されたか、タイムアウトしました

4.1. ビルド ログ

完了したビルド (成功または失敗) の場合は、ログをダウンロードして、ビルドの実行方法の詳細を理解します。 App Center には、次のファイルを含むアーカイブが用意されています。

|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
    |-- <build-step-1> (e.g. 2_Get Sources.txt)
    |-- <build-step-2> (e.g. 3_Pod install.txt)
    |--
    |-- <build-step-n> (e.g. n_Post Job Cleanup.txt)

ビルド ログ (アーカイブのディレクトリにあります build/ ) は、トラブルシューティングと、ビルドが失敗した理由の手順と理解に役立ちます。

4.2. アプリ (.ipa)

ファイルは .ipa 、iOS アプリを含む iPhone アプリケーション アーカイブ ファイルです。

  • ビルドが正しく署名されている場合は、署名時に使用されるプロビジョニング プロファイルに含まれている実際のデバイスにファイルをインストール .ipa できます。 App Center でのコード署名と配布の詳細については、 App Center の iOS コード署名に関するドキュメントを参照してください
  • ビルド中にビルドが署名されていない場合、開発者はファイルに署名 .ipa (codesign を使用してローカルに) または他の目的で使用できます (たとえば、実際のデバイスで UI テストを行う場合は Test Service にアップロードするか、シミュレーターで実行します)。
  • 署名されていないビルドでは、ファイルは .ipa 生成されません。 署名されていないビルドの成果物は .xcarchive ファイルであり、Xcode アーカイブ オーガナイザーでファイルを .ipa 生成するために使用できます。

4.3. ソース マップとシンボル ファイル

React Native iOS アプリをビルドすると、JavaScript ソース マップと 1 つまたは複数の.dsymファイルがビルドごとに自動的に生成され、ビルドが完了したらダウンロードできます。

  • 以前にアプリ内の App Center SDK をクラッシュ レポート モジュールを有効にした場合、クラッシュ レポート ビーコンには、人間が読み取り可能な (シンボリック化された) クラッシュ レポートを表示するためのビルド用に、この .dsym ファイルと JavaScript ソース マップが必要です。
  • クラッシュ レポートのために別の SDK をアプリに統合したことがある場合、対応するサービスでは、人間が読み取り可能な (シンボリック化された) クラッシュ レポートを表示するために、ファイルと JavaScript ソース マップが必要 .dsym です。

に署名する .dsym コードでは、ファイルは変更されない点に .ipa注意してください。 後でビルドにコード署名を行う場合、コード署名前に .dsym 生成された は引き続き有効です。

このアプリにクラッシュ SDK が含まれている場合、iOS シンボルとソース マップは App Center クラッシュ サービスに送信されます。 シンボルを使用すると、ネイティブ スタックと JavaScript スタックの両方で、人間が読み取り可能な (シンボリック化された) クラッシュ レポートを有効にします。

5. ビルドのヒント

5.1. Yarn

Yarn は、 のより高速で決定的な代替品 npmです。 yarn.lockの横のリポジトリにファイルが存在するpackage.json場合、App Center はビルドの開始時に Yarn yarn install を使用します。 それ以外の場合は、 が実行 npm installされます。

5.2. カスタム ビルド スクリプト

App Center の既定のビルド コマンドを実行する前に、スクリプトを実行するためのオプションがいくつかあります。

  • プロジェクトpackage.jsonのファイルにポストインストール スクリプトを作成します。 これは、依存関係がインストールされた後に自動的に実行されます。

      "scripts": {
        ...
        "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh"
      },
    
  • App Center のカスタム ビルド スクリプト機能を使用してシェル スクリプトを記述します

    #!/usr/bin/env bash
    
    # Example: Authenticate with private NPM registry
    echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc
    
    # Example: Create a file that's not in version control (from base64 encoded environment variable)
    base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt