【Swift5】FirebaseAnalyticsを複数のTARGET・plistで個別設定する方法【Objective-C】

2020年8月26日

複数のターゲットが存在するプロジェクトでFirebaseAnalyticsを導入しようとした時に、開発と本番でログデータを分ける必要があったのでその方法を記載します。

1.FirebaseAnalyticsのインストール
2.FirebaseAnalyticsを複数のターゲットで個別設定する方法

1. FirebaseAnalyticsのインストール

cocoapodでFirebaseAnalyticsをプロジェクトに追加します。

pod 'Firebase/Analytics'

Podfileに上記を追加します。

$ pod install

pod installで追加します。

2. FirebaseAnalyticsを複数のTARGETで個別設定する方法

cocoapodでFirebaseをプロジェクトに追加したらログが取れるように設定します。

Swift5

import Firebase

FirebaseのSDKをインポートします。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        
        var filePath
        if isDevelop {
            filePath = Bundle.main.path(forResource: "GoogleService-Info-Dev", ofType: "plist")
        }
        else {
            filePath = Bundle.main.path(forResource: "GoogleService-Info", ofType: "plist")
        }
        guard let options = FirebaseOptions(contentsOfFile: filePath!) else {
            return
        }
        FirebaseApp.configure(options: options)

        return true
    }

つぎにFirebaseのどのplistを使用するのかpathを取得して、FIROptionsを作成しconfigureWithOptions:でオプションを設定しつつAnalyticsを開始させます。

Objective-C

@import Firebase;

FirebaseのSDKをインポートします。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    NSString *path;

    if (isDevelop) {
        path = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info-Dev" ofType:@"plist"];
    }
    else {
        path = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
    }
    FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:path];
    [FIRApp configureWithOptions:options];

    return YES;
}

つぎにFirebaseのどのplistを使用するのかpathを取得して、FIROptionsを作成しconfigureWithOptions:でオプションを設定しつつAnalyticsを開始させます。