Download PDF
Download page マッピングファイルの手動アップロード.
マッピングファイルの手動アップロード
Related pages:
コードを難読化し、クラッシュをモニタする場合は、ProGuard または DexGuard マッピングファイルをアップロードする必要があります。AppDynamics は、アプリケーションがクラッシュスナップショット用の人間が判読可能なスタックトレースを生成するために、マッピングファイルを必要とします。これを行う理由の詳細については、「人間が判読能なクラッシュスナップショットの取得」を参照してください。
DexGuard は ProGuard 上に構築されているため、コントローラ UI と、マッピングファイルをアップロードするための REST API の一部は、ProGuard ファイルと DexGuard ファイルの両方の ProGuard を参照します。
このページでは、マッピングファイルを手動でアップロードするための要件、使用可能なメソッド、および手順について説明します。
Gradle および build.gradle
ファイルを使用して ProGuard または DexGuard マッピングファイルの自動アップロードを設定することをお勧めします。
要件
マッピングファイルを手動でアップロードするには、以下を指定してマッピングファイルをアプリケーションの正しいバージョンに関連付ける必要があります。
アプリケーションの Android パッケージ名
(
AndroidManifest.xml
ファイルまたはbuild.gradle
ファイルのいずれかで指定された)そのアプリケーションのバージョンコード
メソッドのアップロード
その後は、コントローラ UI の Upload Missing ProGuard Mappings ダイアログを使用してマッピングファイルをアップロードすることも、特別な REST API を使用することもできます。提供している ProGuard マッピングファイルごとに、アップロードを個別に実行します。また、別の REST API を使用してアップロードを確認することもできます。
アプリケーションを更新する場合は、新しいバージョンのマッピングファイルをアップロードする必要があります。
コントローラ UI を使用したアップロード
- モバイル アプリケーション メニューから、[Configuration] をクリックします。
- [ProGuard Mappings ] をクリックします。
- Upload missing ProGuard Mapping ダイアログで、次の操作を実行します。
- パッケージのバージョンコード(数字)を入力します。これは、このマッピングファイルが生成されたアプリケーションの
AndroidManifest.xml
ファイルまたはbuild.gradle
ファイルのいずれかで指定されたversionCode
プロパティです。 - Choose File.
をクリックします。アップローダは.txt
拡張子を持つファイルを想定します。ファイルにmapping.txt
という名前が付けられます。 - ファイルブラウザでマッピングファイルを見つけて選択し、Open をクリックします。
- Upload をクリックします。
- パッケージのバージョンコード(数字)を入力します。これは、このマッピングファイルが生成されたアプリケーションの
REST API を使用したアップロード
API では HTTP 基本認証が使用されます。ユーザ名は AppDynamics EUM アカウント名で、パスワードは EUM ライセンスキーです。
マッピングファイルの送信
PUT リクエストの本文のテキストファイルとしてマッピングファイルを次の URL に送信します。
https://api.eum-appdynamics.com/v2/account/<MyAccountName>/<androidPackageName>/<versionCode>/proguard-mapping
https://fra-api.eum-appdynamics.com/v2/account/<MyAccountName>/<androidPackageName>/<versionCode>/proguard-mapping
https://syd-api.eum-appdynamics.com/v2/account/<MyAccountName>/<androidPackageName>/<versionCode>/proguard-mapping
EUM サーバの場所の詳細については、「Cisco AppDynamics SaaS Domains and IP Ranges」を参照してください。
次のパラメータが必要です。
MyAccountName
:URL エンコードされたバージョンのアカウント名。androidPackagename
:このマッピングファイルが生成された Android パッケージの名前。versionCode
:このマッピングファイルが生成されたアプリケーションのAndroidManifest.xml
ファイルまたはbuild.gradle
ファイルのいずれかで指定された「versionCode」プロパティの文字列表現。
リクエスト本文にマッピングファイルが含まれます。Content-Type
ヘッダー、-H Content-Type:text/plain,
、アカウント名、およびライセンスキー/パスワードをコールに追加する必要があります。
REST API を使用したリクエストと応答の例
これは、REST API を使用した要求と応答の例です。
アップロードのリクエスト
次の例では、curl を使用して ProGuard マッピングファイルを送信します。同様のコマンドを使用すると、DexGuard マッピングファイルを送信できます。アカウント名は「Example account」であり、ライセンスキー/パスワードは「Example-License-Key-4e8ec2ae6cfe」です。アカウント名が URL エンコードされると、アカウント名のスペースはプラス記号に置き換えられます。Android アプリケーションのパッケージ名は「com.example.networklogger」です。マッピングファイルは、versionCode
のバージョンに対応しています。
curl -v -H Content-Type:text/plain --upload-file mapping.txt --user Example+account:Example-License-Key-4e8ec2ae6cfe https://api.eum-appdynamics.com/v2/account/Example+account/com.example.networklogger/1/proguard-mapping
curl -v -H Content-Type:text/plain --upload-file mapping.txt --user Example+account:Example-License-Key-4e8ec2ae6cfe https://fra-api.eum-appdynamics.com/v2/account/Example+account/com.example.networklogger/1/proguard-mapping
curl -v -H Content-Type:text/plain --upload-file mapping.txt --user Example+account:Example-License-Key-4e8ec2ae6cfe https://syd-api.eum-appdynamics.com/v2/account/Example+account/com.example.networklogger/1/proguard-mapping
応答のアップロード
例のリクエストの成功した出力は次のようになります。
* 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/proguard-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
* 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/proguard-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
* 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/proguard-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 を使用してアップロードされたマッピングファイルの確認
マッピングファイルが 2 つの REST API を使用して正常にアップロードされたことを確認できます。
最後にアップロードされた 50 個のマッピングファイルのリスト
proguardQuery
メソッドを使用すると、最後にアカウントにアップロードされた最大 50 個のマッピングファイル(ProGuard または DexGuard)の GUID のリストを、アップロードされた時刻とともに取得することができます。その応答は、アップロード時刻が最新のものから、JSON 形式で表示されます。
「API を使用したアップロード」の説明に従って認証を設定します。
次のようにフォームの GET リクエストを作成します。
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://<EUM_Cloud/EUM_Server_Host:port>/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard
BASH- EUM_Cloud
は、SaaS ベースの EUM クラウド URL を指します。完全なリストについては、「Cisco AppDynamics SaaS Domains and IP Ranges」を参照してください。- EUM_Server_Host
は、オンプレミス EUM サーバを指す URL を指します。- EUM_Account_Name
は、EUM アカウント名です。- GUID_To_Check
は、対象の ProGuard ファイルの GUID です。
Sample Request
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://api.eum-appdynamics.com:443/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://fra-api.eum-appdynamics.com:443/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://syd-api.eum-appdynamics.com:443/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard
Sample Response
{"proguardFiles": [
{"packageName":"my_package_name1", "version":"1", "uploadTime":"mm/dd/yyyy 16:09:23","GUID":"my_build_id1"},
{"packageName":"my_package_name2", "version":"1", "uploadTime":"mm/dd/yyyy 16:09:23","GUID":"my_build_id2"}
]}
GUID による特定のマッピングファイルの確認
checkForProguardFile
メソッドを使用すると、GUID によって特定の ProGuard ファイルまたは DexGuard ファイルがアップロードされているかどうかを確認できます。アップロード時刻が応答で返されます。
- 「REST API を使用したアップロード」の説明に従って認証を設定します。
次のようにフォームの GET リクエストを作成します。
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://<EUM_Cloud/EUM_Server_Host:port>/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard/guid/<GUID_To_Check>
BASH- EUM_Cloud
は、SaaS ベースの EUM クラウド URL を指します。完全なリストについては、「Cisco AppDynamics SaaS Domains and IP Ranges」を参照してください。- EUM_Server_Host
は、オンプレミス EUM サーバを指す URL を指します。- EUM_Account_Name
は、EUM アカウント名です。- GUID_To_Check
は、対象の ProGuard ファイルの GUID です。Sample Request
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://api.eum-appdynamics.com:443/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard/guid/my_build_id1
BASHcurl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://fra-api.eum-appdynamics.com:443/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard/guid/my_build_id1
BASHcurl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://syd-api.eum-appdynamics.com:443/v2/account/<EUM_Account_Name>/crash-symbol-file-query/proguard/guid/my_build_id1
BASH
Sample Response{"packageName":"mypackagename","version":"1","uploadTime":"mm/dd/yyyy 16:09:23","GUID":"my_build_id1"}
BASH