SourceMap のアップロード
この記事では、コントローラ UI とREST API を使用して SourceMap をアップロードする方法について説明します。
コントローラ UI でのソースマップのアップロード
- 左側のパネルから、[Configuration] をクリックします。
- [ProGuard Mapping & NDK Symbol Files & Source Maps] をクリックします。
- [Upload Missing ProGuard Mapping] ダイアログから、次の手順を実行します。
- パッケージのバージョン名を入力します。これは、このマッピングファイルが生成されたアプリケーションの
AndroidManifest.xmlファイルまたはbuild.gradleファイルのいずれかで指定されたversionNameプロパティです。 - [Choose File] をクリックします。アップローダは、拡張子が
.txtのファイルに対応しています。ファイルの名前はmapping.txtです。 - ファイルブラウザでマッピングファイルを見つけて選択し、[Open] をクリックします。
- [Upload] をクリックします。
- パッケージのバージョン名を入力します。これは、このマッピングファイルが生成されたアプリケーションの
REST API を使用したソースマップのアップロード
API では HTTP 基本認証が使用されます。ユーザー名は Splunk AppDynamics EUM アカウント名で、パスワードは EUM ライセンスキーです。
ソースマッピングファイルの送信
- アメリカ地域
-
https://api.eum-appdynamics.com/v2/account/<MyAccountName>/<app-key>/<androidPackageName>/<version-string>/[Android/iOS]/jssource-mapping
- EMEA
-
https://fra-api.eum-appdynamics.com/v2/account/<MyAccountName>/<app-key>/<androidPackageName>/<version-string>/[Android/iOS]/jssource-mapping
- APAC
-
https://syd-api.eum-appdynamics.com/v2/account/<MyAccountName>/<app-key>/<androidPackageName>/<version-string>/[Android/iOS]/jssource-mapping
EUM サーバーのその他の場所については、「SaaS ドメインと IP 範囲」を参照してください。
次のパラメータが必要です。
MyAccountName:URL エンコードされたバージョンのアカウント名。androidPackagename:このマッピングファイルが生成された Android パッケージの名前。versionName:このマッピングファイルが生成されたアプリケーションのAndroidManifest.xmlファイルまたはbuild.gradleファイルのいずれかで指定された「versionCode」プロパティの文字列表現。
リクエスト本文にマッピングファイルが含まれます。Content-Type -H Content-Type:text/plain を追加する必要があります。
REST API を使用したリクエストと応答の例これは、REST API を使用した要求と応答の例です。
アップロードのリクエスト次の例では、curl を使用してソースマップファイルを送信します。同様のコマンドを使用すると、DexGuard マッピングファイルを送信できます。アカウント名は "Example account" であり、ライセンスキー/パスワードは "Example-License-Key-4e8ec2ae6cfe" です。アカウント名が URL エンコードされると、アカウント名のスペースはプラス記号に置き換えられます。Android アプリケーションのパッケージ名は "com.appdynamics.android.ReactNativeEveryFeature" です。マッピングファイルは、versionName のバージョンに対応しています。
構文
curl -v -H Content-Type:text/plain --upload-file main.jsbundle.map --user <EUMAccountName>:<license-key> https://api.eum-appdynamics.com/v2/account/<EUMAccountName>/<App-key>/<App-Name>/<version>/<Android/IOS>/jssource-mapping
例:
- Android
-
curl -v -H Content-Type:text/plain --upload-file "index.android.bundle.txt" --user Example+account:Example-License-Key-4e8ec2ae6cfe https://shadow-eum-api.appdynamics.com/v2/Example+account/SH-AAB-AAE-WNX/com.appdynamics.android.ReactNativeEveryFeature/1/Android/jssource-mapping
- iOS
-
curl -v -H Content-Type:text/plain --upload-file main.jsbundle.map" --user Example+account:Example-License-Key-4e8ec2ae6cfe https://shadow-eum-api.eum-appdynamics.com/v2/account/Example+account/SH-AAB-AAE-WNX/com.appdynamics.ios.ReactNativeEveryFeature/1.0/iOS/jssource-mapping
API では HTTP 基本認証が使用されます。ユーザー名は Splunk AppDynamics EUM アカウント名で、パスワードは EUM ライセンスキーです。
アップロードのリクエスト次の例では、curl を使用してソースマッピングファイルを送信します。同様のコマンドを使用すると、DexGuard マッピングファイルを送信できます。アカウント名は "Example account" であり、ライセンスキー/パスワードは "Example-License-Key-4e8ec2ae6cfe" です。アカウント名が URL エンコードされると、アカウント名のスペースはプラス記号に置き換えられます。Android アプリケーションのパッケージ名は「com.example.networklogger」です。マッピングファイルは、versionName のバージョンに対応しています。
アップロードの応答- アメリカ地域
-
* About to connect() to api.eum-appdynamics.com port 443 (#0) * Trying ::1... * connected * Connected to api.eum-appdynamics.com (::1) port 443 (#0) * Server auth using Basic with user 'Example+account' > PUT /v2/account/Example+account/com.example.networklogger/1/jssource-mapping HTTP/1.1 > Authorization: Basic SW50ZXJuYWwrdGVzdCthY2NvdW50OlRlc3RBY2N0LTFlMzktNDVkMy05MzAzLTRlOGVjMmFlNmNmZQ== > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5 > Host: api.eum-appdynamics.com > Accept: */* > Content-Length: 4 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 200 OK < Content-Length: 0 < Server: Jetty(8.1.4.v20120524) < * Connection #0 to host api.eum-appdynamics.com left intact * Closing connection #0
- EMEA
-
* About to connect() to fra-api.eum-appdynamics.com port 443 (#0) * Trying ::1... * connected * Connected to fra-api.eum-appdynamics.com (::1) port 443 (#0) * Server auth using Basic with user 'Example+account' > PUT /v2/account/Example+account/com.example.networklogger/1/jssource-mapping HTTP/1.1 > Authorization: Basic SW50ZXJuYWwrdGVzdCthY2NvdW50OlRlc3RBY2N0LTFlMzktNDVkMy05MzAzLTRlOGVjMmFlNmNmZQ== > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5 > Host: fra-api.eum-appdynamics.com > Accept: */* > Content-Length: 4 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 200 OK < Content-Length: 0 < Server: Jetty(8.1.4.v20120524) < * Connection #0 to host fra-api.eum-appdynamics.com left intact * Closing connection #0
- APAC
-
* About to connect() to syd-api.eum-appdynamics.com port 443 (#0) * Trying ::1... * connected * Connected to syd.eum-appdynamics.com (::1) port 443 (#0) * Server auth using Basic with user 'Example+account' > PUT /v2/account/Example+account/com.example.networklogger/1/jssource-mapping HTTP/1.1 > Authorization: Basic SW50ZXJuYWwrdGVzdCthY2NvdW50OlRlc3RBY2N0LTFlMzktNDVkMy05MzAzLTRlOGVjMmFlNmNmZQ== > User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5 > Host: syd-api.eum-appdynamics.com > Accept: */* > Content-Length: 4 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 200 OK < Content-Length: 0 < Server: Jetty(8.1.4.v20120524) < * Connection #0 to host syd-api.eum-appdynamics.com left intact * Closing connection #0
トークンを使用した REST API でのソースマップのアップロード
MAPPING_FILE_UPLOAD_API_DISABLED: Trueソースマップファイルをアップロードするには、次の手順を実行します。