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 > Swift Packages > Add Package Dependency を選択します。
- リポジトリの URL を入力します:
https://github.com/tealium/tealium-swift-crash-reporter
- バージョンルールを構成します。通常、
"Up to next major"
が推奨されます。現在の Tealium Swift ライブラリのバージョンがリストに表示されない場合は、Swift パッケージキャッシュをリセットします。 TealiumCrashModule
を選択し、Xcode プロジェクトの各アプリターゲットに追加します。Frameworks > Libraries & Embedded Content の下にあります。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 のアプリターゲットの一般構成ページに移動します。
-
以下のフレームワークを 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年March月29日