Download PDF
Download page dSYM ファイルのアップロード.
dSYM ファイルのアップロード
Related pages:
AppDynamics は、アプリケーションがクラッシュスナップショット用の人間が判読可能なスタックトレースを生成するために、dSYM ファイルを必要とします。スナップショットの重要性の詳細については、「人間が判読能なクラッシュスナップショットの取得」を参照してください。
アプリケーションを更新する場合は、新しいアプリケーションバージョン用の新しい dSYM ファイルを用意する必要があります。dSYM ファイルには、特定の Xcode ビルドにリンクする UUID が含まれているため、AppDynamics は、追加情報を使用せずに、正しい dSYM ファイルと着信クラッシュレポートを明確に照合できます。
dSYM ファイルをアップロードするには:
dSYM ファイルの有効化
アプリケーションがクラッシュした場合に生成されるクラッシュスナップショットに、人間が判読可能な情報をエージェントが提供できるようにするには、[DWARF with dSYM
] ファイルオプションを使用してコンパイルし、アプリケーション用のデバッグシンボルファイルを作成します。
dSYM を有効にするには:
- Xcode の [Project Navigator] で、プロジェクトを選択します。
- ターゲットリストで、アプリケーションを構築するターゲットを選択します。
- [Build Settings] タブを選択します。
[Build Options] セクションで、[Debugging Information Format] が [
DWARF with dSYM File
] に設定されていることを確認します。
ビルドごとに AppDynamics に dSYM ファイルを自動でアップロードする
dSYM ファイルのアップロードを自動化すると、ビルドのたびに必要な手動手順の数が削減され、すべてのビルドで適切な dSYM ファイルを AppDynamics が使用できるようになります。
- Xcode の [Project Navigator] で、プロジェクトを選択します。
- アプリケーションターゲットをクリックします。
- [Settings] エディタで [Build Phase] タブを選択します。
- メインパネルの左上隅にある [+] アイコンをクリックします。
- ドロップダウンから [New Run Script Phase] を選択します。
スクリプトボックスで、次の行を追加します。
export ADRUM_ACCOUNT_NAME="<Account_Name_HERE>" // From the View License - End User Monitoring section of the License Page export ADRUM_LICENSE_KEY="<License_Key_HERE>" // From the View License - End User Monitoring section of the License Page SCRIPT=$(/usr/bin/find "${SRCROOT}" -name xcode_build_dsym_upload.sh | head -n 1) /bin/sh "${SCRIPT}"
SWIFTまた、必要に応じて設定できるオプションパラメータもあります。これらを設定するには、上記の 2 番目の
export
ステートメントの後に次の行を追加します。有効にするには、1
に設定します。export ADRUM_UPLOAD_WHEN_BUILT_FOR_SIMULATOR=0 export ADRUM_TREAT_UPLOAD_FAILURES_AS_ERRORS=0 export ADRUM_EUM_PROCESSOR="<EUM_SERVER_URL>"
SWIFT最後のステートメントは、SaaS ベースの EUM アカウントの地域クラウドロケーションまたはオンプレミスサーバの URL を設定するために使用する必要があります。
手動で AppDynamics に dSYM ファイルをアップロードする
ファイルを手動でアップロードするには:
- Xcode から dSYM ファイルを取得します。
- UI を使用して AppDynamics に dSYM ファイルをアップロードする
か、
API を使用して AppDynamics に dSYM ファイルをアップロードします。 - REST API を使用してアップロードされた dSYM を確認します。
Xcode から dSYM ファイルを取得する
- Xcode で、[Product] [> Build] を選択して Xcode ビルドを実行します。
[View > Navigators > Show Report Navigator] を選択して、ログナビゲータを表示します。
古いバージョンの Xcode では [Show Log Navigator] です。
- 最新のビルドのログエントリをクリックします。
- ログの末尾付近で、「
Generate <Your_App_Name>.app.dSYM
」という名前のログエントリの上にマウスのカーソルを合わせます。 - エントリの右側にあるボタンをクリックして、展開します。
表示されたコマンドの末尾が、dSYM ファイルへのパスです。 - Finder でこの dSYM ファイルに移動します。
- dSYM ファイルを右クリックし、[Compress] を選択します。
- [Finder] が生成した
.zip
ファイルを AppDynamics にアップロードします。
UI を使用して AppDynamics に dSYM ファイルをアップロードする
- モバイル アプリケーション メニューから、[Configuration] をクリックします。
- [Mobile App Configuration] をクリックします。
- dSYM Files で、+ アイコンをクリックします。
- [Upload Missing dSYM Mapping] ダイアログで、[Choose File] をクリックします。
アップローダは、拡張子が.zip
のファイルに対応しています。 - ファイルブラウザで、インストゥルメント化されたアプリケーションの圧縮された dSYM ファイルを選択します。
- [Upload] をクリックします。
REST API を使用して AppDynamics に dSYM ファイルをアップロードする
API では HTTP 基本認証が使用されます。ユーザ名は EUM アカウント名で、パスワードは EUM ライセンスキーです。
HTTP 基本認証ログイン情報のセットアップ
コントローラ UI の右上隅で、[Settings >] [License] をクリックします。
- [Account Usage] タブで、[User Experience] セクションまで下にスクロールします。
- ライセンスキーの横にある [Show] をクリックして、EUM ライセンスキーを表示します。これが、認証用のパスワードです。
- EUM アカウント名と EUM ライセンスキーを URL エンコードします。
dSYM ファイルの送信
PUT
リクエストの本文で dSYM を zip アーカイブとして次の URI へ送信します。
https://api.eum-appdynamics.com/v2/account/<EUM_Account_Name>/ios-dsym
https://fra-api.eum-appdynamics.com/v2/account/<EUM_Account_Name>/ios-dsym
https://syd-api.eum-appdynamics.com/v2/account/<EUM_Account_Name>/ios-dsym
Content-Type ヘッダー -H Content-Type:application/octet-stream
、および URL エンコードされたアカウント名(ユーザ名)とライセンスキー(パスワード)をこのコールに設定する必要があります。
Sample Request and Response
これは、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
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
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
* 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
* 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 を確認する
2 つの REST API を使用して dSYM が正常にアップロードされたことを確認できます。
アップロードされた最近 50 件の dSYM リスト
dsymQuery
メソッドでは、アカウントにアップロードされた最近の dSYM ファイル(最大 50 件)の UUID リストとアップロード時刻を取得できます。その応答は、アップロード時刻が最新のものから、JSON 形式で表示されます。
「 REST API を使用して 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
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/Example+account/crash-symbol-file-query/dsym
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://fra-api.eum-appdynamics.com:443/v2/account/Example+account/crash-symbol-file-query/dsym
curl --user Example+account:Example-License-Key-4e8ec2ae6cfe https://syd-api.eum-appdynamics.com:443/v2/account/Example+account/crash-symbol-file-query/dsym
Sample Response
{"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 を使用して 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>
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 です。サンプルリクエスト
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>
BASH
サンプル応答{"uploadTime":"mm/dd/yyyy 14:15:32","UUID":"my_uuid"}
JSON