ビットライズコードプッシュ
Bitriseは、Bitrise認証と統合されたホスト型CodePushサーバーを提供しています。リリース管理の React Native アプリや Expo アプリと一緒に使用することができます
パブリックベータ
Bitrise CodePushは現在パブリックベータ版です。 お問い合わせ下さい。 そうすることで、お客様のためにこの機能を有効にすることができます。
パブリックベータには、1 か月あたり 100,000 件のプッシュ更新が含まれています。さらに必要な場合はお知らせください
コードプッシュについて
CodePush を使用すると、React Native 開発者はモバイルアプリのアップデートをユーザーのデバイスに直接デプロイできます。このサービスは次の 2 つの部分で構成されています。
-
開発者がアプリのアップデートを公開できる CodePush サーバー。Bitrise CodePush サーバーにアクセスするには、CodePush デプロイメントをセットアップする必要があります CodePush デプロイメントの作成.
-
オープンソース CodePushNext リアクトネイティブクライアント SDK これにより、アプリ内からアップデートを問い合わせることができます。SDK は React Native の新しいアーキテクチャと Expo をサポートしています CodePush 用にアプリを設定する.
Bitrise CodePush ServerはマイクロソフトのCodePushサーバーをベースにしており、リリース管理の一部です。リリース管理が必要です。 アプリ ご利用のCodePushデプロイメント経由でBitrise CodePushサーバーにアップデートパッケージをプッシュできるようにするため。
API のみ
CodePush サーバー機能は現在、以下から利用できます。 リリース管理 API。GUI は開発中です。
コードプッシュを有効にする
Bitrise CodePushは現在パブリックベータ版です。Bitriseにワークスペースでこの機能を有効にするようリクエストできます。この機能を有効にすると、そのワークスペースのすべてのアプリで CodePush を使用できます
-
リリース管理にログインします。
-
メインページで、 コードプッシュ カード。
-
クリック アクセスをリクエスト。
-
ダイアログで、 。
-
この機能を有効にすると、アクセスを確認するメールが届きます。
CodePush デプロイメントの作成
パブリックベータ
Bitrise CodePushは現在パブリックベータ版です。 お問い合わせ下さい。 そうすることで、お客様のためにこの機能を有効にすることができます。
パブリックベータには、1 か月あたり 100,000 件のプッシュ更新が含まれています。さらに必要な場合は、お問い合わせください。
-
必ずお持ちください 個人アクセストークン または ワークスペース API トークン。
リリース管理 API による認証にはトークンが必要です。
-
React Nativeプロジェクトごとに、次のものがあることを確認してください 2 つのアプリ リリース管理では、1 つは iOS 用、もう 1 つは Android 用です。
-
Get the app ID for each app. You can see it in the URL of the app page:
https://app.bitrise.io/release-management/workspaces/<worskspace-id>/connected-apps/<connected-app-id>.API からの ID
あなたはできる API を使用してアプリを追加できます。。の応答
/connected-appsエンドポイントにはidフィールド:これは必要なアプリ ID です。 -
を呼び出して、各アプリケーションの CodePush デプロイメントを作成します。
/connected-apps/{connected_app_id}/code-push/deploymentsエンドポイント。リクエストには以下が必要です。-
接続アプリケーション ID。
-
認証用のトークン。
-
デプロイに使用する名前。
この例では、という名前を使用しています
prod:curl -X 'POST' \ 'https://api.bitrise.io/release-management/v1/connected-apps/<connected-app-id>/code-push/deployments' \ -H 'accept: application/json' \ -H 'authorization: <access-token>' \ -H 'Content-Type: application/json' \ -d '{ "name": "prod" }'既存のデプロイメントキー
すでにお持ちの場合
deploymentKey(たとえば、Microsoft アプリセンターからセットアップを移行する場合)、以下を使用できます。keyAPI リクエストのパラメータ:{ "name": "prod", "key": "<existing-deploymentKey>" } -
-
base64 でエンコードされたものをコピーする
keyレスポンスで返されました。これは CodePush デプロイキーです。これが必要なのは アプリケーションを CodePush 用に構成してください。。
CodePush 用にアプリを設定する
CodePush SDK をインストールし、デプロイキーと CodePush サーバー URL をアプリ設定に追加します。このプロセスは React Native アプリと Expo アプリでは異なります
React ネイティブアプリ用のコードプッシュの設定
CodePush for React Nativeを使用するには、SDKをインストールしてから、iOSモジュールとAndroidモジュールの両方にCodePushをセットアップする必要があります。
バージョン要件
CodePushNext SDK はリアクトネイティブ 0.76 以降をサポートしています。
-
React ネイティブコードプッシュインストール次へ:
npm install @code-push-next/react-native-code-push
-
用コードプッシュを設定します。最も重要な手順は以下のとおりです iOS セットアップ。
詳細な手順は、SDK の GitHub リポジトリにあります。 iOS。
-
用の CodePush をセットアップします。最も重要な手順は以下のとおりです アンドロイドセットアップ。
詳細な手順は、SDK の GitHub リポジトリにあります。 アンドロイド。
iOS セットアップ
-
バンドル ID が、次の場合に使用したバンドル ID と一致することを確認してください Bitrise でアプリを作成する。使えます
react-native-renameアプリの名前をカスタムバンドル ID に変更するには: リアクション・ネイティブ・リネーム。 -
で
ios/Podfile、次の行を探してくださいplatform :ios、min_ios_version_supported。次のように変更してくださいplatform :ios, 15.5。 -
Update
ios/<projectname>/AppDelegate.swift:-
CodePush ヘッダーのインポートステートメントを追加します。
import CodePush
-
次のコード行を見つけてください。
Bundle.main.url(forResource: "main", withExtension: "jsbundle")
-
これを次の行に置き換えてください。
CodePush.bundleURL()
-
きみの
bundleURLメソッドは以下のようになるはずです。override func bundleURL() -> URL? { #if DEBUG RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index") #else CodePush.bundleURL() #endif }
-
-
Add the CodePush deployment key and the CodePush Server URL to
ios/<projectname>/Info.plist:デプロイキーは、作成時に取得します Bitriseへのコードプッシュ・デプロイ。
ワークスペーススラッグ
サーバーURLにはBitriseワークスペーススラッグが必要です。 スラグでワークスペースとプロジェクトを識別する。
#The CodePush deployment key <key>CodePushDeploymentKey</key> <string></string> #The CodePush server URL with the Bitrise workspace slug <key>CodePushServerURL</key> <string>https://<workspace-slug>.codepush.bitrise.io</string>
アンドロイドセットアップ
-
末尾に行を追加
android/app/build.gradle追加のビルドタスク定義として:... apply from: "../../node_modules/@code-push-next/react-native-code-push/android/codepush.gradle" ...
-
[更新]
android/app/build.gradle android.defaultConfigセットアップするにはversionCodeとversionName:versionCode System.getenv("APP_VERSION_CODE") != null ? System.getenv("APP_VERSION_CODE").toInteger() : 1 versionName System.getenv("APP_VERSION_NAME") != null ? System.getenv("APP_VERSION_NAME") : "1.0" -
[更新]
android/app/src/main/java/…/MainApplication.ktCodePush を使用するには:パッケージリスト
PackageList は、アプリケーションの存続期間中に一度だけインスタンス化する必要があります。
... // 1. Import the plugin class. import com.microsoft.codepush.react.CodePush class MainApplication : Application(), ReactApplication { override val reactNativeHost: ReactNativeHost = object : DefaultReactNativeHost(this) { override fun getPackages(): List<ReactPackage> = PackageList(this).packages.apply { // Packages that cannot be autolinked yet can be added manually here, for example: // add(MyReactNativePackage()) } // 2. Override the getJSBundleFile method in order to let // the CodePush runtime determine where to get the JS // bundle location from on each app start override fun getJSBundleFile(): String { return CodePush.getJSBundleFile() } }; } -
で
android/app/src/main/res/value/strings.xmlで、CodePush デプロイキーと CodePush サーバー URL を追加します。デプロイキーは、作成時に取得します Bitriseへのコードプッシュ・デプロイ。
ワークスペーススラッグ
サーバーURLにはBitriseワークスペーススラッグが必要です。 スラグでワークスペースとプロジェクトを識別する。
<string name="CodePushDeploymentKey" translatable="false"><CODE_PUSH_DEPLOYMENT_KEY></string> <string name="CodePushServerUrl" translatable="false">https://<workspace-slug>.codepush.bitrise.io</string>
Expo アプリ向けコードプッシュの設定
-
変換
app.jsonにapp.config.jsこれにより、環境変数を使用できるようになります。詳細については、以下をご覧ください 動的設定に関する Expo ドキュメント。
-
を設定
apps ios.bundleIdentifierとandroid.packageでapp.config.js。これらは、使用中の値と一致する必要があります アプリを作成する。 ビットライズで。 -
リアクトネイティブコードプッシュネクストSDKをインストールし、
dotenv、およびexpo-build-propertiesパッケージ:npm install @code-push-next/react-native-code-push dotenv expo-build-properties
-
エキスポコードプッシュプラグインのセットアップ:
-
プラグインをに含める
app.config.js。ワークスペーススラッグ
サーバーURLにはBitriseワークスペーススラッグが必要です。 スラグでワークスペースとプロジェクトを識別する。
plugins: [ [ "@code-push-next/react-native-code-push/expo", // CodePush plugin { ios: { // Use the environment variable for the iOS CodePush Deployment Key CodePushDeploymentKey: IOS_CODE_PUSH_DEPLOYMENT_KEY, CodePushServerURL: "https://<workspace-slug>.codepush.bitrise.io" }, android: { // Use the environment variable for the Android CodePush Deployment Key CodePushDeploymentKey: ANDROID_CODE_PUSH_DEPLOYMENT_KEY, CodePushServerURL: "https://<workspace-slug>.codepush.bitrise.io" } } ], [ "expo-build-properties", { ios: { deploymentTarget: "15.5" } } ] // Add other plugins here if you have more ]
-
-
デプロイキー値をに追加
.envファイル。デプロイキーは次の場合に取得されます CodePush デプロイメントを作成しています。 ビットライズで。ヒント
を追加
.envファイルをあなたの.gitignore鍵を秘密にしておくためだ!# .env file # CodePush Deployment Keys IOS_CODE_PUSH_DEPLOYMENT_KEY="" ANDROID_CODE_PUSH_DEPLOYMENT_KEY=""
CodePush アップデートの作成とリリース
アップデートバンドルを作成し、Bitrise CodePush Serverにアップロードして、ユーザーのデバイスにアップデートをプッシュします。
アップデートバンドルの作成
リアクトネイティブ
博覧会
-
コードを更新してください。
-
iOS と Android の両方に対応するアップデートバンドルを作成します。
-
iOS:
npx react-native bundle \ --platform ios \ --dev false \ --entry-file index.js \ --bundle-output ./build/main.jsbundle \ --assets-dest ./build
-
アンドロイド:
npx react-native bundle \ --platform android \ --dev false \ --entry-file index.js \ --bundle-output ./build/index.android.bundle \ --assets-dest ./build
-
-
ビルドフォルダを圧縮します。
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
-
アンドロイド:
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 -r update.zip ./build
Bitrise CodePush サーバーにパッケージをアップロードする
-
クローンを作成
release-management-recipesBitrise のリポジトリ。リポジトリには、更新パッケージのアップロードに使用するヘルパースクリプトが含まれています。
git clone https://github.com/bitrise-io/release-management-recipes
-
にアクセスしてください
release-management-recipesフォルダー:cd release-management-recipes
-
スクリプトを実行してアップロードします。
スクリプトには入力データが必要です。
-
の道
update.zipファイル。 -
あなたのBitrise APIトークン:これは以下のどちらかでもかまいません 個人アクセストークン または ワークスペース API トークン。
-
リリース管理アプリのアプリ ID。
-
デプロイ ID: 次の場合に取得されます。 CodePush デプロイメントを設定する リリース管理で。
-
アプリのバージョン。
最後のコマンドは次のようになるはずです。
PACKAGE_PATH=../update.zip \ AUTHORIZATION_TOKEN=<api-token> \ CONNECTED_APP_ID=<connected-app-id> \ DEPLOYMENT_ID=<deployment-id> \ APP_VERSION=<app-version> /bin/bash ./api/upload_code_push_package.sh
-