dSYM ファイルのアップロード
Splunk AppDynamics は、アプリケーションがクラッシュスナップショット用の人間が判読可能なスタックトレースを生成するために、dSYM ファイルを必要とします。スナップショットの重要性の詳細については、「人間が判読可能なクラッシュスナップショットの取得」を参照してください。
アプリケーションを更新する場合は、新しいアプリケーションバージョン用の新しい dSYM ファイルを用意する必要があります。dSYM ファイルには、特定の Xcode ビルドにリンクする UUID が含まれているため、Splunk AppDynamics は、追加情報を使用せずに、正しい dSYM ファイルと着信クラッシュレポートを明確に照合できます。
dSYM ファイルをアップロードするには:
dSYM ファイルの有効化
アプリケーションがクラッシュした場合に生成されるクラッシュスナップショットに、人間が判読可能な情報をエージェントが提供できるようにするには、[] ファイルオプションを使用してコンパイルし、アプリケーション用のデバッグシンボルファイルを作成します。
dSYM を有効にするには:
- Xcode の Project Navigator でプロジェクトを選択します。
- ターゲットリストで、アプリケーションを構築するターゲットを選択します。
- [Build Settings] タブを選択します。
- [Build Options] セクションで、Debugging Information Format が DWARF with dSYM File に設定されていることを確認します。
ビルドごとに Splunk AppDynamics に dSYM ファイルを自動でアップロードする
dSYM ファイルのアップロードを自動化すると、ビルドのたびに必要な手動手順の数が削減され、すべてのビルドで適切な dSYM ファイルを Splunk AppDynamics が使用できるようになります。
開始する前に、xcode_build_dsym_upload.sh スクリプトをダウンロードします。
手動で Splunk AppDynamics に dSYM ファイルをアップロードする
ファイルを手動でアップロードするには:
- Xcode から dSYM ファイルを取得します。
- UI を使用して AppDynamics に dSYM ファイルをアップロードするSplunk AppDynamicsか、Splunk AppDynamicsAPI を使用して AppDynamics に dSYM ファイルをアップロードします。
- REST API を使用してアップロードされた dSYM を確認します。
Xcode から dSYM ファイルを取得する
UI を使用して Splunk AppDynamics に dSYM ファイルをアップロードする
- モバイル アプリケーション メニューから、[Configuration] をクリックします。
- [Mobile App Configuration] をクリックします。
- [dSYM Files] で、[+] アイコンをクリックします。
- [Upload Missing dSYM Mapping] ダイアログで [Choose File] をクリックします。アップローダは
.zip拡張子を持つファイルを想定します。 - ファイルブラウザで、インストゥルメント化されたアプリケーションの圧縮された dSYM ファイルを選択します。
- Upload をクリックします。
REST API を使用して Splunk AppDynamics に dSYM ファイルをアップロードする
API では HTTP 基本認証が使用されます。ユーザ名は EUM アカウント名で、パスワードは EUM ライセンスキーです。
HTTP 基本認証ログイン情報のセットアップ
-
コントローラ UI の右上隅で、 をクリックします。
- [Account Usage] タブで、[User Experience] セクションまで下にスクロールします。
- ライセンスキーの横にある [Show] をクリックして、EUM ライセンスキーを表示します。これが、認証用のパスワードです。
- EUM アカウント名と EUM ライセンスキーを URL エンコードします。
dSYM ファイルの送信
PUT -H Content-Type:application/octet-stream URI の本文で、dSYM を zip アーカイブとして送信します。
- アメリカ地域
-
https://api.eum-appdynamics.com/v2/account/<EUM_Account_Name>/ios-dsym
- EMEA
-
https://fra-api.eum-appdynamics.com/v2/account/<EUM_Account_Name>/ios-dsym
- APAC
-
https://syd-api.eum-appdynamics.com/v2/account/<EUM_Account_Name>/ios-dsym
リクエストと応答の例
これは、REST API を使用した要求と応答の例です。
アップロードのリクエスト
次の例では、curl を使用して「UISampleApp.app.dSYM.zip」という名前の dSYM ファイルを送信します。EUM アカウント名は「Example account」、パスワードは EUM ライセンスキー「Example-License-Key-4e8ec2ae6cfe」です。アカウント名が URL エンコードされると、アカウント名のスペースはプラス記号に置き換えられます。
- アメリカ地域
-
curl -v -H Content-Type:application/octet-stream --upload-file UISampleApp.app.dSYM.zip --user Example account:Example-License-Key-4e8ec2ae6cfe https://api.eum-appdynamics.com/v2/account/Example+account/ios-dsym - EMEA
-
curl -v -H Content-Type:application/octet-stream --upload-file UISampleApp.app.dSYM.zip --user Example account:Example-License-Key-4e8ec2ae6cfe https://fra-api.eum-appdynamics.com/v2/account/Example+account/ios-dsym - APAC
-
curl -v -H Content-Type:application/octet-stream --upload-file UISampleApp.app.dSYM.zip --user Example account:Example-License-Key-4e8ec2ae6cfe https://syd-api.eum-appdynamics.com/v2/account/Example+account/ios-dsym
アップロードの応答
サンプルリクエストが成功した場合の出力は次のようになります。
- アメリカ地域
-
* 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/ios-dsym 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: localhost:7001 > Accept: */* > Content-Length: 0 > Expect: 100-continue > < HTTP/1.1 100 Continue < 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/ios-dsym 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: localhost:7001 > Accept: */* > Content-Length: 0 > Expect: 100-continue > < HTTP/1.1 100 Continue < 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-api.eum-appdynamics.com (::1) port 443 (#0) * Server auth using Basic with user 'Example+account' > PUT /v2/account/Example+Account/ios-dsym 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: localhost:7001 > Accept: */* > Content-Length: 0 > Expect: 100-continue > < HTTP/1.1 100 Continue < 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 での dSYM のアップロード
MAPPING_FILE_UPLOAD_API_DISABLED: TruedSYM ファイルをアップロードするには、次の手順を実行します。
REST API を使用してアップロードされた dSYM を確認する
2 つの REST API を使用して dSYM が正常にアップロードされたことを確認できます。
アップロードされた最近 50 件の dSYM リスト
dsymQuery メソッドを使用すると、アカウントにアップロードされた最近の dSYM ファイル(最大 50 件)の UUID リストとアップロード時刻を取得できます。その応答は、アップロード時刻が最新のものから、JSON 形式で表示されます。
- 「REST API を使用して Splunk AppDynamics に dSYM ファイルをアップロードする」の説明に従って、認証を設定します。
- 次のようにフォームの GET リクエストを作成します。
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://<EUM_Cloud/Server_Host:Port>/v2/account/Example+account/crash-symbol-file-query/dsym- EUM_Cloudは、SaaS ベースの EUM クラウド URL を指します。完全なリストについては、「Splunk AppDynamics On-Premises SaaS ドメインと IP 範囲」を参照してください。- EUM_Server_Hostは、オンプレミス EUM サーバーを指す URL を指します。- EUM_Account_Nameは、EUM アカウント名です。
.- GUID_To_Checkは、対象の ProGuard ファイルの GUID です。
サンプル リクエスト
- アメリカ地域
-
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://api.eum-appdynamics.com:443/v2/account/Example+account/crash-symbol-file-query/dsym - EMEA
-
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://fra-api.eum-appdynamics.com:443/v2/account/Example+account/crash-symbol-file-query/dsym - APAC
-
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://syd-api.eum-appdynamics.com:443/v2/account/Example+account/crash-symbol-file-query/dsym
サンプル応答
{"dSymFiles":[
{"uploadTime":"mm/dd/yyyy 14:15:32","UUID2":"my_uuid2"},
{"uploadTime":"mm/dd/yyyy 14:15:32","UUID":"my_uuid"}
]}
UUID による特定の dSYM の確認
checkForDSymFile メソッドを使用すると、UUID によって特定の dSYM がアップロードされたか確認できます。アップロード時刻が応答で返されます。
- 「REST API を使用して Splunk AppDynamics に dSYM ファイルをアップロードする」の説明に従って、認証を設定します。
- 次のようにフォームの GET リクエストを作成します。
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://<EUM_Cloud/Server_Host:Port>/v2/account/Example+account/crash-symbol-file-query/dsym/uuid/<UUID_to_Check>- EUM_Cloudは、SaaS ベースの EUM クラウド URL を指します。完全なリストについては、「Splunk AppDynamics On-Premises SaaS ドメインと IP 範囲」を参照してください。- EUM_Server_Hostは、オンプレミス EUM サーバーを指す URL を指します。- EUM_Account_Nameは、EUM アカウント名です。
.- GUID_To_Checkは、対象の ProGuard ファイルの GUID です。サンプル リクエスト
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://<EUM_Cloud/Server_Host:Port>/v2/account/Example+account/crash-symbol-file-query/dsym/uuid/<UUID_to_Check>サンプル応答
{"uploadTime":"mm/dd/yyyy 14:15:32","UUID":"my_uuid"}