SourceMap のアップロード

この記事では、コントローラ UI と REST API を使用して SourceMap をアップロードする方法について説明します。

コントローラ UI でのソースマップのアップロード

  1. 左側のパネルで、[Configuration] をクリックします。
  2. ProGuard Mapping & NDK Symbol Files & Source Maps をクリックします。
  3. [Upload Missing ProGuard Mapping] ダイアログで、次の操作を実行します。
    1. パッケージのバージョン名を入力します。これは、このマッピングファイルが生成されたアプリケーションの AndroidManifest.xml ファイルまたは build.gradle ファイルのいずれかで指定された versionName プロパティです。
    2. [Choose File.] をクリックします。アップローダは.txt 拡張子を持つファイルを想定します。ファイルの名前は mapping.txt です。
    3. ファイルブラウザでマッピングファイルを見つけて選択し、Open をクリックします。
    4. Upload をクリックします。

REST API を使用したソースマップのアップロード

API では HTTP 基本認証が使用されます。ユーザー名は Splunk AppDynamics EUM アカウント名で、パスワードは EUM ライセンスキーです。

注: この REST API を無効にし、トークンベースのアップロードを使用するコントローラ API を使用する場合は、Cisco AppDynamics サポートにお問い合わせください。Splunk AppDynamics

ソースマッピングファイルの送信

PUT リクエストの本文のテキストファイルとしてマッピングファイルを次の URL に送信します。
アメリカ地域

        
CODE
https://api.eum-appdynamics.com/v2/account/<MyAccountName>/<app-key>/<androidPackageName>/<version-string>/[Android/iOS]/jssource-mapping
EMEA
CODE
https://fra-api.eum-appdynamics.com/v2/account/<MyAccountName>/<app-key>/<androidPackageName>/<version-string>/[Android/iOS]/jssource-mapping
APAC
CODE
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 ファイルのいずれかで指定された「version-string」プロパティの文字列表現。

リクエスト本文にマッピングファイルが含まれます。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 のバージョンに対応しています。

構文

CODE
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

Examples

Android
CODE
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
CODE
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 のバージョンに対応しています。

アップロードの応答
例のリクエストの成功した出力は次のようになります。
アメリカ地域
CODE
* 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
CODE
* 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
CODE
* 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 でのソースマップのアップロード

注: トークンベースのアップロードを使用するには、次のプロパティが有効になっていることを確認します。
CODE
MAPPING_FILE_UPLOAD_API_DISABLED: True

ソースマップファイルをアップロードするには、次の手順を実行します。

  1. ファイルをアップロードするためのトークンを生成します。
    CODE
    curl -L -X GET -u <username>@<accountName>:<password> '<controller base url>/controller/restui/mobileRUMConfig/fileUploadToken'
  2. アプリケーション ID を取得します。
    CODE
    curl -L -X GET -u <username>@<accountName>:<password> '<controller base url>/controller/restui/mobileRUMConfig/getApplicationId/<App key>'
  3. ソースマップファイルをアップロードします。
    CODE
    curl -L -X POST -u <username>@<accountName>:<password> '<controller base url>/controller/restui/mobileRUMConfig/uploadSourceMappingFile/<applicationID>?token=<token>' -F 'fileData=@"<source map file PATH"' -F 'mobileAppName="<app name>"' -F 'versionName="<version-string>"' -F 'platform="<Platform>"'>