あなたが始める前に
まだ行っていない場合は、 Firebase を Apple プロジェクトに追加します。
ステップ 1 : Performance Monitoring をアプリに追加する
Performance Monitoring SDK を追加すると、Firebase はアプリの画面レンダリングに関するデータ、アプリのライフサイクルに関連するデータ(アプリの開始時間など)、 HTTP/S ネットワーク リクエストに関するデータの収集を自動的に開始します。
Swift Package Manager を使用して、Firebase の依存関係をインストールおよび管理します。
- Xcode で、アプリ プロジェクトを開いた状態で、 File > Add Packagesに移動します。
- プロンプトが表示されたら、Firebase Apple プラットフォーム SDK リポジトリを追加します。
- Performance Monitoring ライブラリを選択します。
- 完了すると、Xcode はバックグラウンドで依存関係の解決とダウンロードを自動的に開始します。
https://github.com/firebase/firebase-ios-sdk
次に、Firebase モジュールを構成します。
-
UIApplicationDelegate
にFirebaseCore
モジュールをインポートし、アプリ デリゲートが使用する他のすべてのFirebase モジュールをインポートします。たとえば、Cloud Firestore と認証を使用するには:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
迅速
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()
迅速
// 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 (最小 v13.3.1) で、[ Product ] > [ Scheme ] > [ Edit scheme ] を選択します。
- 左側のメニューから [実行] を選択し、[引数] タブを選択します。
- [起動時に渡される引数] セクションで、
-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 シミュレータの既知の問題により、パフォーマンス モニタリングがパフォーマンス イベントをキャプチャできません。これらの問題は、iOS 8.3 シミュレーター以降のバージョンで修正されています。
- NSURLSession の
backgroundSessionConfiguration
を使用して確立された接続は、予想よりも長い接続時間を示します。これらの接続はプロセス外で実行され、タイミングはプロセス内のコールバック イベントを反映します。
次のステップ
Performance Monitoring によって自動的に収集されるデータの詳細:
- アプリの起動時間など、アプリのライフサイクルに関連するデータ
- アプリでの画面レンダリング用のデータ
- アプリによって発行されたHTTP/S ネットワーク リクエストのデータ
Firebase コンソールでパフォーマンス データを表示、追跡、フィルタリングします。
カスタム コード トレースをインストルメント化して、アプリ内の特定のタスクまたはワークフローの監視を追加します。