CrashReporter モジュール
アプリのクラッシュを自動的に追跡します。モジュールが有効化され、関連するフレームワークがインストールされると、アプリでクラッシュが発生するとクラッシュイベントがトリガーされます。
使用法
CrashReporter モジュールは、アプリのクラッシュを自動的に追跡します。モジュールが有効化され、関連するフレームワークがインストールされると、アプリでクラッシュが発生した後にクラッシュデータが追跡イベントに追加されます。
オプションとして、sendCrashDataOnCrashDetected
構成フラグを true
に構成することで、SDK を追加の crash
イベントを送信するように構成することができます。これを行うと、クラッシュデータはこの特定のイベントにのみ追加されます。
このフレームワークの使用は、アプリのクラッシュに関する重要な情報を得るために推奨されます。
以下のプラットフォームがサポートされています:
- iOS
- tvOS
- macOS
インストール
Swift Package Manager または CocoaPods で Crash モジュールをインストールします。
Swift Package Manager(推奨)
バージョン 1.9.0+ でサポートされている Swift Package Manager は、Tealium Swift ライブラリをインストールする最も簡単で推奨される方法です:
- Xcode プロジェクトで、File > Add Package Dependencies を選択します。
- リポジトリの URL を入力します:
https://github.com/tealium/tealium-swift-crash-reporter
- バージョンルールを構成します。通常、
"Up to next major"
が推奨されます。現在の Tealium Swift ライブラリのバージョンがリストに表示されない場合は、Swift パッケージキャッシュをリセットします。 TealiumCrashModule
を選択し、Xcode プロジェクトの各アプリターゲットに追加します。これは Frameworks and Libraries の下にあります。- これらの指示に従って、
tealium-swift
ライブラリから他のモジュールを追加します。
CocoaPods
CocoaPods を使用して CrashReporter モジュールをインストールするには:
-
以下の pod を Podfile に追加します:
pod 'TealiumCrashModule'
すでに Podfile には以下の行が含まれています:
pod 'tealium-swift'
-
以下のコマンドを実行します:
pod install
Carthage
Carthage を使用して CrashReporter モジュールをインストールするには:
-
以下を Cartfile に追加します:
github "tealium/tealium-swift-crash-reporter"
-
Xcode のアプリターゲットの General 構成ページに移動します。
-
以下のフレームワークを Embedded Binaries セクションに追加します:
TealiumCrashModule.framework CrashReporter.framework
iOS 用の Carthage インストールについてはこちらを参照してください。
構成
CrashReporter モジュールをインスタンス化するためには、SDK を初期化する際に TealiumConfig
オブジェクトでそれを指定する必要があります:
import TealiumCore
import TealiumCrashModule
let config = TealiumConfig(account: "ACCOUNT",
profile: "PROFILE",
environment: "ENVIRONMENT",
datasource: "DATASOURCE")
// add desired Collectors
config.collectors = [Collectors.AppData, Collectors.Crash] // Instantiates the CrashReporter module
config.sendCrashDataOnCrashDetected = true // optional, If true it sends an extra crash event when a crash is detected and only attaches crash data to that event
tealium = Tealium(config: config) { _ in }
Collectors のドキュメンテーションを確認し、必要なコレクターを正しく指定する方法を理解してください。
データレイヤー
モジュールが有効化されている間、以下の変数が各トラッキングコールとともに送信されます:
変数 | 説明 | 例 |
---|---|---|
crash_uuid |
この特定のクラッシュのための一意の識別子 | "CC2DA0E9-E544-429A-AC5E-A268FC62F02A" |
device_memory_usage* |
クラッシュ時点でのデバイス上のアプリによる現在のメモリ使用量 | "143.57MB" |
app_memory_usage |
クラッシュ時点でのデバイス上のアプリによる現在のメモリ使用量 | "143.57MB" |
device_memory_available* |
クラッシュ時点でのデバイス上の利用可能なメモリ | "1068.88MB" |
memory_free |
クラッシュ時点でのデバイス上の利用可能なメモリ | "1068.88MB" |
device_os_build |
現在の OS ビルド番号 | "15E217" |
crash_process_id |
クラッシュ時点でのアプリの PID | "84351" |
crash_process_path |
アプリが実行中だったパス | "/DemoApp.app/DemoApp" |
crash_parent_process |
アプリを起動した親プロセス | "launchd_sim" |
crash_parent_process_id |
親プロセスの PID | "83183" |
crash_name |
利用可能な場合のクラッシュのフレンドリーな名前 | "Crash Name" |
crash_cause |
クラッシュの原因 | "Crash Reason" |
crash_signal_code |
クラッシュを引き起こしたシグナルコード | "#0" |
crash_signal_name |
クラッシュを引き起こしたシグナル名 | "SIGABRT" |
crash_signal_address |
クラッシュのシグナルアドレス | "4572945982" |
crash_libraries |
クラッシュ時点でロードされていたライブラリのリスト | [{"baseAddress": "0xa3e0000", "codeType": { "arch": 64, "typeEncoding": "Mach"}, "imageName": "/Applications/Xcode9.3.app/Contents/ Developer/Platforms/iPhoneOS.platform/ Developer/Library/CoreSimulator/Profiles /Runtimes/iOS.simruntime/Contents/ Resources/RuntimeRoot/usr/lib/dyld_sim", "imageSize": 212992, "imageUuid": "4015e9b70bde"}] |
crash_threads |
クラッシュ時点でのすべてのアクティブなスレッド | {"crashed": 1,"registers": {"cs": "0x07"},"stack": {"instructionPointer": 4572945982,"symbolInfo": {"symbolName": "","symbolStartAddr": 0},"threadId": ""}} |
- これらの変数は、以前のリリースとの後方互換性のために複製されています
クラッシュの発生
TealiumCrashReporteriOS.framework
がプロジェクトに追加された後、追加の初期化ステップは必要ありません。クラッシュモジュールが有効化され、Tealium SDK が初期化されている限り、アプリでクラッシュが発生すると、クラッシュデータは自動的にトラッキングコールの一部となります。
テスト
ローカルテストでクラッシュを報告するためには、アプリを意図的にクラッシュさせる前にアプリの実行スキームで Debug executable のチェックを外し、アプリにデバッガがアタッチされていないようにします。アプリの実行プロセスにデバッガがアタッチされていると、クラッシュレポーターはクラッシュをキャッチしません。
API リファレンス
invokeCrash()
CrashReporter モジュールのクラッシュを発生させます。
TealiumCrashReporter.invokeCrash(name: name, reason: reason)
パラメータ | タイプ | 説明 | 例 |
---|---|---|---|
name |
String |
クラッシュの名前 | "TEST_CRASH_NAME" |
reason |
String |
クラッシュの理由 | "TEST_CRASH_REASON" |
最終更新日 :: 2024年November月6日