- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
iOS のクラッシュレポートとエラー追跡を有効にすると、リアルユーザーモニタリングで包括的なクラッシュレポートとエラートレンドを取得できます。この機能により、以下にアクセスが可能になります。
スタックトレースを記号化するために、.dSYM ファイルを見つけて Datadog にアップロードしてください。その後、テストクラッシュを実行し、アプリケーションを再起動することによって、構成を確認します。
クラッシュレポートは Error Tracking に表示されます。
まだ iOS SDK をインストールしていない場合は、アプリ内セットアップ手順に従うか、iOS RUM セットアップドキュメントを参照してください。
依存関係マネージャーに従ってパッケージを追加し、初期化スニペットを更新します。
DatadogSDKCrashReporting
を Podfile
に追加します。
platform :ios, '11.0'
use_frameworks!
target 'App' do
pod 'DatadogSDKCrashReporting'
end
https://github.com/DataDog/dd-sdk-ios
にパッケージを追加し、DatadogCrashReporting
をアプリケーションターゲットにリンクします。
注: Datadog
や DatadogStatic
ライブラリにリンクする場合、代わりに DatadogCrashReporting
にリンクしてください。
github "DataDog/dd-sdk-ios"
を Cartfile
に追加し、 DatadogCrashReporting.xcframework
をアプリケーションターゲットにリンクします。
初期化スニペットを更新してクラッシュレポートを含めます。
import DatadogCrashReporting
Datadog.initialize(
appContext: .init(),
trackingConsent: .granted,
configuration: Datadog.Configuration
.builderUsing(
rumApplicationID: "<rum_application_id>",
clientToken: "<client_token>",
environment: "<environment_name>"
)
.trackUIKitActions()
.trackUIKitRUMViews()
.enableCrashReporting(using: DDCrashReportingPlugin())
.build()
)
Global.rum = RUMMonitor.initialize()
クラッシュレポートは生のフォーマットで収集され、そのほとんどがメモリアドレスを含んでいます。これらのアドレスを読みやすいシンボル情報にマッピングするために、Datadog は .dSYM ファイルを必要とし、これはアプリケーションのビルドまたは配布プロセスで生成されます。
すべての iOS アプリケーションは、アプリケーションモジュールごとに .dSYM ファイルを生成しています。これらのファイルは、アプリケーションのバイナリサイズを最小化し、より高速なダウンロードを可能にします。各アプリケーションのバージョンは、.dSYM ファイルのセットを含んでいます。
お使いの環境によっては、App Store Connect から .dSYM ファイルをダウンロードするか、ローカルマシンで検索する必要があります。
ビットコード有効 | 説明 |
---|---|
〇 | dSYM ファイルは、App Store Connect でアプリケーションのビルド処理が完了すると、利用可能になります。 |
✕ | Xcode は、アプリケーションのビルドの最後に、.dSYM ファイルを$DWARF_DSYM_FOLDER_PATH にエクスポートします。DEBUG_INFORMATION_FORMAT ビルド設定が、DWARF with dSYM File に設定されていることを確認します。デフォルトでは、Xcode プロジェクトは、Release プロジェクトの構成で、DEBUG_INFORMATION_FORMAT を DWARF with dSYM File にのみ設定します。 |
Datadog に .dSYM ファイルをアップロードすることで、エラーの関連スタックトレースの各フレームのファイルパスと行番号にアクセスすることができるようになります。
アプリケーションがクラッシュし、アプリケーションを再起動すると、iOS SDK は Datadog にクラッシュレポートをアップロードします。
注: バージョンに変更がない場合、ソースマップを再アップロードしても既存のものはオーバーライドされません。
dSYM ファイルのアップロードには、コマンドラインツール @datadog/datadog-ci を使用することができます。
export DATADOG_API_KEY="<API KEY>"
// dSYM ファイルを含む zip ファイルがある場合
npx @datadog/datadog-ci dsyms upload appDsyms.zip
// dSYM ファイルを含むフォルダがある場合
npx @datadog/datadog-ci dsyms upload /path/to/appDsyms/
注: EU エンドポイントを使用するツールを構成するには、DATADOG_SITE
環境変数を datadoghq.eu
に設定します。インテークエンドポイントに完全な URL を上書きするには、DATADOG_DSYM_INTAKE_URL
環境変数を定義します。
また、Fastlane や GitHub Actions をワークフローで使用している場合は、datadog-ci
の代わりにこれらのインテグレーションを利用することができます。
Datadogプラグインを使用すると、Fastlane の構成から Datadog に dSYM ファイルをアップロードすることができます。
プロジェクトに fastlane-plugin-datadog
を追加します。
fastlane add_plugin datadog
シンボルをアップロードするために Fastlane を構成します。
# download_dsyms action feeds dsym_paths automatically
lane :upload_dsym_with_download_dsyms do
download_dsyms
upload_symbols_to_datadog(api_key: "datadog-api-key")
end
詳細は、fastlane-plugin-datadog
を参照してください。
Datadog Upload dSYMs GitHub Action は、GitHub Action のジョブでシンボルをアップロードできるようにするものです。
name: Upload dSYM Files
jobs:
build:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Generate/Download dSYM Files
uses: ./release.sh
- name: Upload dSYMs to Datadog
uses: DataDog/upload-dsyms-github-action@v1
with:
api_key: ${{ secrets.DATADOG_API_KEY }}
site: datadoghq.com
dsym_paths: |
path/to/dsyms/folder
path/to/zip/dsyms.zip
詳しくは、dSYMs コマンドをご覧ください。
iOS のクラッシュレポートとエラー追跡の構成を確認するには、RUM アプリケーションでクラッシュを発生させ、Datadog にエラーが表示されることを確認します。
iOS シミュレーターまたは実機でアプリケーションを実行します。デバッガが接続されていないことを確認してください。そうしないと、iOS SDK が行う前に、Xcode がクラッシュをキャプチャします。
クラッシュを含むコードを実行します。
func didTapButton() {
fatalError(“Crash the app”)
}
クラッシュが発生したら、アプリケーションを再起動し、iOS SDK が Error Tracking にクラッシュレポートをアップロードするのを待ちます。
注: RUM は iOS v14+ arm64 および arm64e アーキテクチャのシステムシンボルファイルのシンボル化に対応しています。
お役に立つドキュメント、リンクや記事: