iOS/tvOS/macOS アプリケーションの統合¶
iOS、tvOS、macOS アプリケーションのメトリクスデータを収集し、Apple プラットフォーム上のアプリケーションのパフォーマンスを可視化して分析します。
参照パス¶
- 初回統合:まずは クイックスタート をご覧ください
- 完全統合:引き続きこのドキュメントをお読みください
- バージョン 1.6.6 以前からのアップグレード:移行ガイド をご確認ください
- 初期化パラメータ:SDK 初期化、RUM 設定、ログ設定、トレース設定 をご確認ください
- カスタム機能:カスタムタグの使用、カスタム収集ルール、データ収集のマスキング をご確認ください
- 高度なシナリオ:「高度なシナリオ」グループの専用ページをご覧ください
- トラブルシューティング:トラブルシューティング をご確認ください
前提条件¶
注意
RUM Headless サービスが既に有効になっている場合、前提条件は自動的に設定されているため、アプリケーションをそのまま統合できます。
- DataKit をインストールします。
- RUM コレクター を設定します。
- DataKit をパブリックネットワークからアクセス可能にし、IP 地理情報データベースをインストール します。
macOS Alpha に関する注意
SDK 1.6.6 以降では、GuanceSDK メイン SDK が iOS、tvOS、macOS をカバーしています。macOS は現在 Alpha バージョンであり、すべての iOS 機能がサポートされるわけではありません。macOS を統合する前に、テスト環境で初期化、RUM、ログ、トレース、データ同期などの主要な機能を検証してください。Session Replay と Widget Extension は macOS ではサポートされていません。
アプリケーションの統合¶
- リアルユーザーモニタリング(RUM) > アプリケーションを作成 に進み、iOS、tvOS、または macOS アプリケーションタイプを選択します。
- アプリケーション名を入力します。
- アプリケーション ID を入力します。
-
アプリケーション統合方法を選択します。
- パブリックネットワーク DataWay:DataKit コレクターをインストールせずに、RUM データを直接受信します。
- ローカル環境デプロイ:前提条件を満たした上で RUM データを受信します。
インストール¶
ソースコードアドレス:https://github.com/GuanceCloud/datakit-ios
デモ:https://github.com/GuanceDemo/guance-app-demo
CocoaPods の今後のメンテナンスについて
CocoaPods 公式発表 によると、CocoaPods は 2026 年 12 月 2 日以降、trunk を読み取り専用に切り替え、新しい Podspec を受け付けなくなる予定です。既に公開されている Pod バージョンと既存のビルドはすぐに無効になるわけではありませんが、CocoaPods 経由での新バージョン、互換性修正、セキュリティアップデートの入手が制限される可能性があります。そのため、新規統合や SDK のアップグレード時には、Swift Package Manager を使用した統合を推奨します。
Xcode UI を使用する場合
-
Xcode で
File->Add Package Dependency...を選択します。 -
表示されたページの検索ボックスに
https://github.com/GuanceCloud/datakit-ios.gitを入力します。 -
Xcode がパッケージを解析したら、依存バージョンルールを選択します。
Up to Next Major Versionを推奨します。追加先のプロジェクトを選択し、
Add Packageをクリックして、読み込みが完了するまで待ちます。 -
パッケージの解析が完了したら、Package Products リストで各ターゲットに追加する製品を選択し、
Add Packageをクリックします。GuanceSDK:メインプロジェクトのターゲットに追加します。iOS、tvOS、macOS をサポートします。macOS は Alpha バージョンです。GuanceWidgetExtension:iOS Widget Extension ターゲットにのみ追加します。
Package.swift を使用する場合
プロジェクト自体が Swift Package である場合、SDK を依存関係として追加するには、Package.swift の dependencies に追加します。
// メインプロジェクト
dependencies: [
.package(url: "https://github.com/GuanceCloud/datakit-ios.git",
.upToNextMajor(from: "[latest_version]"))
]
ターゲットに依存関係を追加します。
targets: [
.target(
name: "YourTarget",
dependencies: [
.product(name: "GuanceSDK", package: "GuanceSDK"),
]),
.target(
name: "YourWidgetExtensionTarget",
dependencies: [
.product(name: "GuanceWidgetExtension", package: "GuanceSDK"),
]),
]
注意:1.4.0-beta.1 以降で Swift Package Manager をサポートしています。SDK 1.6.6 以降では、SPM の製品名が GuanceSDK、GuanceWidgetExtension、GuanceSessionReplay に変更されています。旧製品名からの移行については、移行ガイド を参照してください。
-
Cartfileファイルを設定します。 -
依存関係を更新します。
ターゲットプラットフォーム(iOS、tvOS、macOS)に応じて、対応する
carthage updateコマンドを実行し、--use-xcframeworksパラメータを追加して XCFrameworks を生成します。-
iOS プラットフォームの場合:
-
tvOS プラットフォームの場合:
-
macOS プラットフォームの場合:
生成された xcframework は、通常の Framework と同じ方法で使用します。コンパイルされたライブラリをプロジェクトに追加します。
GuanceSDK:メインプロジェクトのターゲットに追加します。iOS、tvOS、macOS をサポートします。macOS は Alpha バージョンです。GuanceWidgetExtension:iOS ウィジェット Widget Extension ターゲットにのみ追加します。 -
-
TARGETS->Build Setting->Other Linker Flagsに-ObjCを追加します。 -
Carthage を使用した統合における SDK バージョンサポート:
GuanceSDK:>=1.6.6GuanceWidgetExtension:>=1.6.6
CocoaPods の適用に関する注意
CocoaPods 公式発表 によると、CocoaPods は 2026 年 12 月 2 日以降、trunk を読み取り専用に切り替え、新しい Podspec を受け付けなくなる予定です。新規プロジェクトや依存管理方法の見直しを検討中のプロジェクトでは、上記の Swift Package Manager を使用した SDK 統合を優先してください。
-
Podfileファイルを設定します。-
Dynamic Library を使用する場合
-
Static Library を使用する場合
-
Podfileファイル:use_modular_headers! # メインプロジェクト target 'yourProjectName' do pod 'GuanceSDK', :path => '[folder_path]' end # Widget Extension target 'yourWidgetExtensionName' do pod 'GuanceSDK/WidgetExtension', :path => '[folder_path]' endfolder_path:GuanceSDK.podspecが配置されているフォルダのパスです。GuanceSDK.podspecファイル:GuanceSDK.podspecファイル内のs.versionとs.sourceを変更します。Pod::Spec.new do |s| s.name = "GuanceSDK" s.version = "[latest_version]" s.source = { :git => "https://github.com/GuanceCloud/datakit-ios.git", :tag => s.version } ends.version:指定されたバージョンに変更します。Sources/Agent/Core/FTSDKVersion.hのSDK_VERSIONと一致させることを推奨します。s.source:tag => s.version
-
Widget Extension の互換性のある記述方法:
SDK 1.6.6 以降では、GuanceSDK/WidgetExtension の使用を推奨します。以前のプロジェクトで pod 'FTMobileSDK', :subspecs => ['Extension'] を使用していた場合、GuanceSDK にアップグレード後も、互換性のある subspec を引き続き使用できます。
Podfileディレクトリでpod installを実行して SDK をインストールします。
互換性に関する注意:SDK 1.6.6 以降では、メイン Pod 名が GuanceSDK に変更されています。古い FTMobileSDK を使用した統合方法は、1.6.6 以前のバージョンに対応しています。1.6.6 以降にアップグレードする場合は、移行ガイド を参照して依存関係名を変更してください。
ヘッダーファイルの追加¶
詳細設定のエントリ¶
高度なシナリオ¶
- カスタムタグの使用
- データ収集のカスタムルール
- データ収集のマスキング
- URLSession カスタムネットワーク収集
- 動的設定
- シンボルファイルのアップロード
- Widget Extension データ収集
- WebView データモニタリング
- tvOS データ収集
よくある質問¶
クラッシュログの分析について¶
開発時の Debug モードと Release モードでは、クラッシュ時にキャプチャされるスレッドバックトレースはシンボル化されています。 一方、リリースパッケージにはシンボルテーブルが含まれていないため、異常スレッドの重要なバックトレースはイメージ名のみが表示され、有効なコードシンボルに変換されません。取得した クラッシュログ の関連情報はすべて 16 進数のメモリアドレスであり、クラッシュしたコードを特定できません。そのため、16 進数のメモリアドレスを対応するクラスとメソッドに解析する必要があります。
コンパイル後またはアーカイブ後に dSYM ファイルを見つける方法¶
- Xcode では、dSYM ファイルは通常、コンパイル後の .app ファイルと同じディレクトリに生成されます。
- プロジェクトをアーカイブした場合、Xcode の
WindowメニューからOrganizerを選択し、対応するアーカイブファイルを選択します。アーカイブファイルを右クリックし、Show in Finderを選択して、Finder で対応する.xcarchiveファイルを見つけます。.xcarchiveファイルを右クリックし、Show Package Contentsを選択してからdSYMsフォルダに移動すると、対応する dSYM ファイルが見つかります。
Xcode コンパイル後に dSYM ファイルが生成されない?¶
Xcode の Release ビルドではデフォルトで dSYM ファイルが生成されますが、Debug ビルドではデフォルトでは生成されません。対応する Xcode 設定は以下の通りです。
Build Settings -> Code Generation -> Generate Debug Symbols -> Yes
Build Settings -> Build Option -> Debug Information Format -> DWARF with dSYM File
bitCode を有効にしている場合、シンボルファイルをアップロードするにはどうすればよいですか?¶
bitcode App を App Store にアップロードする際、送信ダイアログでシンボルファイル(dSYM ファイル)の生成を宣言します。
- シンボルテーブルファイルを設定する前に、App Store から該当バージョンに対応する dSYM ファイルをローカルにダウンロードし、スクリプトを使用して入力パラメータに基づいてシンボルテーブルファイルを処理・アップロードする必要があります。
- スクリプトを Xcode プロジェクトのターゲットに統合する必要はありません。また、ローカルで生成された dSYM ファイルを使用してシンボルテーブルファイルを生成しないでください。ローカルでコンパイル生成された dSYM ファイルのシンボルテーブル情報はすべて隠蔽されているためです。ローカルコンパイルで生成された dSYM ファイルをアップロードすると、復元結果は「__hiden#XXX」のようなシンボルになります。
App Store に公開済みのアプリに対応する dSYM ファイルを取得する方法¶
| App Store Connect にアプリをアップロードする際の Distribution options | dSym ファイル |
|---|---|
| Don’t include bitcode Upload symbols |
Xcode から取得 |
| Include bitcode Upload symbols |
iTunes Connect から取得 Xcode から取得する場合、 .bcsymbolmap を使用した難読化解除処理が必要です。 |
| Include bitcode Don’t upload symbols |
Xcode から取得する場合、.bcsymbolmap を使用した難読化解除処理が必要です。 |
| Don’t include bitcode Don’t upload symbols |
Xcode から取得 |
Xcode から取得する方法¶
-
Xcode -> Window -> Organizer -
Archivesタブを選択します。 -
公開されたアーカイブパッケージを見つけ、右クリックして
Show in Finderを選択します。 -
特定されたアーカイブファイルを右クリックし、
パッケージの内容を表示を選択します。 -
dSYMsディレクトリを選択します。このディレクトリ内にダウンロードされた dSYM ファイルがあります。
iTunes Connect から取得する方法¶
- App Store Connect にログインします。
- "マイ App(My Apps)" に進みます。
- "App Store" または "TestFlight" で特定のバージョンを選択し、"ビルドバージョンメタデータ(Build Metadata)" をクリックします。このページで、"dSYM をダウンロード(Download dSYM)" ボタンをクリックして dSYM ファイルをダウンロードします。
.bcsymbolmap による難読化解除処理¶
Xcode で dSYM ファイルを見つける際に、BCSymbolMaps ディレクトリが表示されます。
ターミナルを開き、以下のコマンドを使用して難読化解除処理を実行します。
xcrun dsymutil -symbol-map <BCSymbolMaps_path> <.dSYM_path>
競合を避けるためのグローバル変数の追加¶
カスタムフィールドが SDK データと競合するのを避けるため、タグ名には プロジェクト略称 のプレフィックスを追加することを推奨します。例:custom_tag_name。プロジェクトで使用する key 値は、ソースコード で確認できます。SDK のグローバル変数に RUM やログと同じ変数が存在する場合、RUM やログが SDK のグローバル変数を上書きします。






