CodePush アップデートの作成とリリース
アップデートバンドルを作成し、Bitrise CodePush Serverにアップロードして、ユーザーのデバイスにアップデートを配信します。
このガイドでは、CodePushアップデートをリリースする一般的な流れについて説明します。プロセスの自動化にはBitrise CIの使用をお勧めします: Bitrise CIを使ったCodePushアップデート。
CodePushの認証情報を取得するClick to copy link
bitrise.ioのGUIを使ってCodePushアップデートをリリースする場合は、このセクションはスキップできます。
APIでCodePushアップデートをリリースするには、次のデプロイ認証情報が必要です。
-
Bitrise CodePushのデプロイID。
iOSとAndroidでは、それぞれ別のデプロイIDが必要です。
-
Bitrise Release ManagementのアプリID。
iOSとAndroidでは、それぞれ別のアプリIDが必要です。
-
デプロイキー。
iOSとAndroidでは、それぞれ別のデプロイキーが必要です。
-
Bitrise APIトークン: 個人用アクセストークンまたはworkspace APIトークンのいずれかを使用できます。
これらの認証情報は、CodePushデプロイの作成時に保存できます。後で取得する必要がある場合は、Release Management APIを使用してください。
-
Bitrise APIトークンがあることを確認します。
-
iOSアプリとAndroidアプリの両方について、Release ManagementからアプリIDを取得します。
Release Managementでアプリを開き、URLからIDをコピーします。これはURLの末尾にある英数字のコードです: https://app.bitrise.io/release-management/workspaces/4afb6c4bb001295/connected-apps/12a0cf2b-9cf1-401a-8904-393b18v449ca.
-
APIからデプロイIDとデプロイキーを取得します。
ヒントCodePush deploymentsを作成するときに、IDとキーの両方を取得できます。作成時に保存しなかった場合は、以下を参照してください。
デプロイIDを取得するには、
deploymentsエンドポイントを呼び出します。これによってすべてのデプロイが返されます。curl -X 'GET' \'https://api.bitrise.io/release-management/v1/connected-apps/<APP-ID>/code-push/deployments' \-H 'accept: application/json' \-H 'authorization: <YOUR-ACCESS-TOKEN>'レスポンスには各デプロイのデプロイID(
id)が含まれています。これはデプロイキー(keyを取得するために必要です。idの値を指定してdeploymentsを呼び出します:curl -X 'GET' \'https://api.bitrise.io/release-management/v1/connected-apps/<APP-ID>/code-push/deployments/<DEPLOYMENT-ID>' \-H 'accept: application/json' \-H 'authorization: <YOUR-ACCESS-TOKEN>'
これらの認証情報があれば、アプリへのCodePushアップデートのリリースに進むことができます。
アップデートバンドルの作成Click to copy link
- React Native
- Expo
-
コードにアップデートを加えます。
-
iOSとAndroidの両方についてアップデートバンドルを作成します。
-
iOS:
npx react-native bundle \--platform ios \--dev false \--entry-file index.js \--bundle-output ./build/main.jsbundle \--assets-dest ./build -
Android:
npx react-native bundle \--platform android \--dev false \--entry-file index.js \--bundle-output ./build/index.android.bundle \--assets-dest ./build
-
-
ビルドフォルダをZIP圧縮します。
zip -r update.zip ./build
-
コードにアップデートを加えます。
-
iOSとAndroidの両方についてアップデートバンドルを作成します。
-
iOS:
npx expo export:embed \--entry-file index.js \--platform ios \--dev false \--reset-cache \--bundle-output ./build/main.jsbundle \--assets-dest ./build \--minify false -
Android:
npx expo export:embed \--entry-file index.js \--platform android \--dev false \--reset-cache \--bundle-output ./build/index.android.bundle \--assets-dest ./build \--minify false
-
-
ビルドフォルダをZIP圧縮します。
zip -r update.zip ./build
Bitrise CodePush ServerへのパッケージのアップロードClick to copy link
パッケージはRelease ManagementのGUIまたはRelease Management APIのいずれかを使ってアップロードできます。
- GUI
- API
-
Release Managementでアプリを開きます。
-
左側でCodePushを選択します。
-
デプロイを選択します。

-
New updateをクリックします。
-
Target versionsフィールドに、アップデートのバージョン範囲を追加します。
範囲式を使用できます: 対象バージョン。
-
必要に応じて、アップデートの説明を追加します。
-
Enabledをチェックして、ユーザーがアップデートをダウンロードできるようにします。

-
必要に応じて、Mandatoryをチェックして、ユーザーに今すぐアップデートするよう促します。
-
アップデートファイルをドラッグ&ドロップエリアにドラッグ&ドロップするか、エリアをクリックしてファイルを選択します。
ファイルの要件.bundle、.jsbundle、または.zipファイルをアップロードしてください。- 最大ファイルサイズは50 MBです。
-
Rollout percentageフィールドで、アップデートを受け取るユーザーの割合を設定します。
後でパーセンテージの値を増やすことができます。default valueは100%です。
-
Release updateをクリックします。
-
CodePushの認証情報が利用可能であることを確認します。CodePushの認証情報を取得するを参照してください。
-
Bitriseから
release-management-recipesリポジトリをクローンします。このリポジトリには、アップデートパッケージのアップロードに使用するヘルパースクリプトが含まれています。
git clone https://github.com/bitrise-io/release-management-recipes -
release-management-recipesフォルダに移動します。cd release-management-recipes -
スクリプトを実行してアップロードします。
スクリプトには次の入力データが必要です。
update.zipファイルのパス。- Bitrise APIトークン: 個人用アクセストークンまたはworkspace APIトークンのいずれかを使用できます。
- デプロイID。
- アプリのバージョン。詳細については、対象バージョンを参照してください。
最終的なコマンドは次のようになります。
UPDATE_PATH=../update.zip \AUTHORIZATION_TOKEN=<api-token> \DEPLOYMENT_ID=<deployment-id> \APP_VERSION=<app-version> /bin/bash ./api/upload_code_push_package.sh
対象バージョンClick to copy link
CodePush用のアップデートを作成する際は、パッケージをCodePushサーバーにアップロードするときにアプリのバージョンを指定する必要があります。これがターゲットバージョンです。指定したバージョンのアプリを実行しているユーザーがアップデートを受け取ります。
範囲式を使用してバージョンを指定できます。
| 範囲式 | アップデートの対象 |
|---|---|
| 1.2.3 | アプリのバイナリストアバージョン1.2.3を実行している特定のデバイスのみ |
| * | CodePushアプリからアップデートを受け取るように設定されたすべてのデバイス |
| 1.2.x | メジャーバージョン1、マイナーバージョン2、任意のパッチバージョンを実行しているデバイス |
| 1.2.3 - 1.2.7 | バイナリバージョンが1.2.3(以上)から1.2.7(以下)の範囲内にあるデバイス |
| >=1.2.3 <1.2.7 | バイナリバージョンが1.2.3(以上)から1.2.7(未満)の範囲内にあるデバイス |
| 1.2 | >=1.2.0 <1.3.0 と同等 |
| ~1.2.3 | >=1.2.3 <1.3.0 と同等 |
| ^1.2.3 | >=1.2.3 <2.0.0 と同等 |