ホットアップデート SourceMap バージョン照合¶
React Native アプリケーションが CodePush などの OTA ソリューションを通じて JavaScript Bundle をホットアップデートする場合、APK または IPA のアプリケーションバージョンは変更されません。各ホットアップデートパッケージを正しい SourceMap に一致させるには、ベースパッケージと各ホットアップデートパッケージに異なる RUM version を設定し、同じ version を使用して対応する SourceMap をアップロードする必要があります。
version の長さ制限
version の長さは 20 文字を超えないようにしてください。1.2-cp-1 のような短いバージョン番号を使用し、長すぎるホットアップデートの説明は避けることをお勧めします。
バージョン例¶
アプリケーションバージョンが 1.2 の場合:
| JavaScript Bundle | RUM version |
SourceMap アップロードに使用する version |
|---|---|---|
| ベースパッケージ | 1.2 |
1.2 |
| 最初のホットアップデートパッケージ | 1.2-cp-1 |
1.2-cp-1 |
| 2番目のホットアップデートパッケージ | 1.2-cp-2 |
1.2-cp-2 |
version の設定¶
SDK の初期化時に、dataModifier を使用して version フィールドを変更します:
const rumVersion = '1.2-cp-1';
let config: FTMobileConfig = {
datawayUrl: datawayUrl,
clientToken: clientToken,
env: 'prod',
dataModifier: {
version: rumVersion,
},
};
await FTMobileReactNative.sdkConfig(config);
各 Bundle は独自の rumVersion を設定します。この設定はレポートデータ内の version のみを変更し、Android versionName、iOS MARKETING_VERSION、または CodePush のターゲットバージョンは変更しません。
ネイティブシンボルファイル¶
完全な React Native sourcemap.zip には、現在の Bundle の JavaScript SourceMap と、対応するベースパッケージのネイティブシンボルファイルの両方を含める必要があります。ネイティブクラッシュの解析には、引き続き Android mapping.txt、シンボル .so、または iOS dSYM を使用する必要があります。
純粋な JavaScript ホットアップデートではネイティブシンボルファイルは変更されないため、ベースパッケージのネイティブシンボルファイルを再利用できます。ただし、各ホットアップデートバージョンでは、それらを現在の JavaScript SourceMap と一緒にパッケージ化し、そのホットアップデートバージョンの version を使用してアップロードする必要があります。具体的なディレクトリ構成については、React Native シンボルファイルのアップロード を参照してください。
SourceMap のアップロード¶
ベースパッケージまたはホットアップデートパッケージをリリースするたびに:
- JavaScript Bundle をビルドし、同時に対応する SourceMap を生成します;
- React Native シンボルファイルのアップロード の要件に従って
sourcemap.zipにパッケージ化します; - アップロード時に、RUM データと同じ
app_id、env、versionを入力します。
例えば、update-one がレポートする version が 1.2-cp-1 の場合、その SourceMap をアップロードする際の version も 1.2-cp-1 と入力する必要があります。
アップロード方法については、スクリプトによる SourceMap のアップロード または フロントエンドページからのアップロード を参照してください。まだユーザーが使用している古いバージョンの SourceMap は削除しないでください。