始める前に
まだ追加していない場合は、Apple プロジェクトに Firebase を追加します。
ステップ 2: アプリに Performance Monitoring を追加する
Performance Monitoring SDK を追加すると、Firebase はアプリの画面のレンダリング、アプリのライフサイクルに関連するデータ(アプリ起動時間など)、HTTP/S ネットワーク リクエストのデータの収集を自動的に開始します。
Swift Package Manager を使用して Firebase の依存関係のインストールと管理を行います。
- Xcode でアプリのプロジェクトを開いたまま、[File] > [Add Packages] の順に移動します。
- プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。
- Performance Monitoring ライブラリを選択します。
- ターゲットのビルド設定の [Other Linker Flags] セクションに
-ObjC
フラグを追加します。 - 上記の作業が完了すると、Xcode は依存関係の解決とダウンロードをバックグラウンドで自動的に開始します。
https://github.com/firebase/firebase-ios-sdk.git
次に、Firebase モジュールを構成します。
UIApplicationDelegate
にFirebaseCore
モジュールと、アプリのデリゲートが使用する他の Firebase モジュールをインポートします。たとえば、Cloud Firestore、Authentication を使用するには、次のように指定します。SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- アプリ デリゲートの
application(_:didFinishLaunchingWithOptions:)
メソッドで、FirebaseApp
共有インスタンスを構成します。SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI を使用している場合は、アプリケーション デリゲートを作成し、
UIApplicationDelegateAdaptor
またはNSApplicationDelegateAdaptor
を介してApp
構造体に接続する必要があります。また、アプリ デリゲートのメソッドの実装入れ替えを無効にする必要があります。詳細については、SwiftUI の手順をご覧ください。SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
-
アプリを再コンパイルします。
ステップ 2: 初期データ表示用のパフォーマンス イベントを生成する
SDK がアプリに正常に追加されると、Firebase によりイベントの処理が開始されます。引き続きローカルで開発を行っている場合は、アプリを操作して、初期データの収集と処理用のイベントを生成します。
シミュレータまたはテストデバイスを使用してアプリの開発を続けます。
アプリをバックグラウンドとフォアグラウンドの間で数回切り替えたり、画面間を移動してアプリを操作したり、ネットワーク リクエストをトリガーしたりして、イベントを生成します。
Firebase コンソールのパフォーマンス ダッシュボードに移動します。初期データが数分以内に表示されます。
初期データが表示されない場合は、トラブルシューティングのヒントをご覧ください。
ステップ 3:(省略可)パフォーマンス イベントのログメッセージを表示する
次のようにデバッグ ロギングを有効にします。
- Xcode(v15.2 以上)で、[Product] > [Scheme] > [Edit scheme] の順に選択します。
- 左側のメニューから [Run] を選択し、[Arguments] タブを選択します。
- [Arguments Passed on Launch] セクションで
-FIRDebugEnabled
を追加します。
ログ メッセージにエラー メッセージがないか確認します。
Performance Monitoring は、ログ メッセージをフィルタできるように、ログ メッセージに
Firebase/Performance
のタグを付けます。Performance Monitoring がパフォーマンス イベントをロギングしていることを示す次の種類のログを確認します。
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
URL をクリックして Firebase コンソールでデータを表示します。ダッシュボードでデータが更新されるまでに少し時間がかかることがあります。
アプリがパフォーマンス イベントをログに記録していない場合は、トラブルシューティングのヒントをご覧ください。
ステップ 4: (省略可)特定のコードのカスタム モニタリングを追加する
アプリの特定のコードに関連付けられたパフォーマンス データをモニタリングするには、カスタム コード トレースを計測可能にします。
カスタム コード トレースを使用すると、一連の画像の読み込みやデータベースのクエリなど、アプリが特定のタスクや一連のタスクを完了するのにかかる時間を測定できます。カスタムコード トレースのデフォルトの指標は期間ですが、キャッシュ ヒットやメモリ警告などのカスタム指標を追加することもできます。
コードで、Performance Monitoring SDK に用意された API を使用して、カスタムコード トレースの開始と終了を定義(および必要なカスタム指標を追加)します。
これらの機能の詳細とアプリに追加する方法については、特定のコードにモニタリングを追加するをご覧ください。
ステップ 5: アプリをデプロイして結果を確認する
Xcode シミュレータと 1 つ以上のテストデバイスを使用して Performance Monitoring を検証したら、アプリのアップデート バージョンをユーザーにデプロイします。
Firebase コンソールのパフォーマンス ダッシュボードでパフォーマンス データをモニタリングできます。
既知の問題
- Performance Monitoring には、GTMSQLite との互換性に関する既知の問題があります。GTMSQLite を使用するアプリでは、Performance Monitoring を使用しないことをおすすめします。
FirebaseApp.configure()
を呼び出した後のメソッドの実装入れ替えは、Performance Monitoring SDK に影響する可能性があります。- iOS 8.0~8.2 シミュレータの既知の問題により、Performance Monitoring でパフォーマンス イベントがキャプチャされなくなります。これらの問題は、iOS シミュレータ 8.3 以降のバージョンで修正されています。
- NSURLSession の
backgroundSessionConfiguration
を使用して接続を確立する場合、接続時間が予想よりも長くかかります。この場合の接続はプロセスの外部で実行され、そのタイミングはプロセス内のコールバック イベントを反映したものになります。
次のステップ
Performance Monitoring によって自動的に収集されるデータの詳細を確認する。
- アプリのライフサイクルに関連するデータ(アプリの起動時間など)
- アプリの画面レンダリングのデータ
- アプリによって発行された HTTP/S ネットワーク リクエストのデータ
Firebase コンソールでパフォーマンス データを表示、追跡、フィルタリングする。
カスタム コード トレースを計測可能にすることで、アプリ内の特定のタスクまたはワークフローのモニタリングを追加する。