Deaktivieren Sie die Firebase-Leistungsüberwachung

Damit Ihre Benutzer die Verwendung der Firebase-Leistungsüberwachung aktivieren oder deaktivieren können, möchten Sie möglicherweise Ihre App so konfigurieren, dass Sie die Leistungsüberwachung aktivieren und deaktivieren können. Möglicherweise ist diese Funktion auch während der App-Entwicklung und beim Testen hilfreich.

Im Folgenden sind einige Optionen aufgeführt, die Sie in Betracht ziehen sollten:

  • Sie können das Performance Monitoring SDK beim Erstellen Ihrer App deaktivieren und es zur Laufzeit wieder aktivieren.

  • Sie können Ihre App mit aktiviertem Performance Monitoring SDK erstellen, haben aber die Möglichkeit, es zur Laufzeit mithilfe von Firebase Remote Config zu deaktivieren.

  • Sie können das Performance Monitoring SDK vollständig deaktivieren, ohne die Möglichkeit zu haben, es zur Laufzeit zu aktivieren.

Deaktivieren Sie die Leistungsüberwachung während Ihres App-Erstellungsprozesses

Eine Situation, in der die Deaktivierung der Leistungsüberwachung während Ihres App-Erstellungsprozesses nützlich sein könnte, besteht darin, zu vermeiden, dass während der App-Entwicklung und beim Testen Leistungsdaten aus einer Vorabversion Ihrer App gemeldet werden.

Um die Leistungsüberwachung zu deaktivieren oder zu deaktivieren, können Sie einen von zwei Schlüsseln zur Eigenschaftenlistendatei ( Info.plist ) für Ihre Apple-App hinzufügen:

  • Um die Leistungsüberwachung zu deaktivieren, Ihrer App aber die Aktivierung zur Laufzeit zu ermöglichen, setzen Sie firebase_performance_collection_enabled in der Info.plist Datei Ihrer App auf false .

  • Um die Leistungsüberwachung vollständig zu deaktivieren, ohne die Möglichkeit, sie zur Laufzeit zu aktivieren, setzen Sie firebase_performance_collection_deactivated in der Info.plist Datei Ihrer App auf true .

Deaktivieren Sie Ihre App zur Laufzeit mit Remote Config

Mit Firebase Remote Config können Sie Änderungen am Verhalten und Erscheinungsbild Ihrer App vornehmen. Damit ist es eine ideale Möglichkeit, die Leistungsüberwachung in bereitgestellten Instanzen Ihrer App zu deaktivieren.

Um die Datenerfassung zur Leistungsüberwachung beim nächsten Start Ihrer Apple-App zu deaktivieren, verwenden Sie den unten gezeigten Beispielcode. Weitere Informationen zur Verwendung von Remote Config in einer Apple-App finden Sie unter Verwenden von Firebase Remote Config auf Apple-Plattformen .

  1. Stellen Sie sicher, dass Remote Config in Ihrer Podfile verwendet wird:

    pod 'Firebase/RemoteConfig'
    
  2. Fügen Sie oben in der AppDelegate Datei Ihrer App Folgendes hinzu:

    Schnell

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    import FirebaseRemoteConfig
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    @import FirebaseRemoteConfig;
    
  3. Fügen Sie in Ihrer AppDelegate Datei den folgenden Code zu den launchOptions Anweisungen in der application:didFinishLaunchingWithOptions: -Instanzmethode hinzu:

    Schnell

    Hinweis: Dieses Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    remoteConfig = RemoteConfig.remoteConfig()
    // You can change the "false" below to "true" to permit more fetches when validating
    // your app, but you should change it back to "false" or remove this statement before
    // distributing your app in production.
    let remoteConfigSettings = RemoteConfigSettings(developerModeEnabled: false)
    remoteConfig.configSettings = remoteConfigSettings!
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase console.
    remoteConfig.setDefaultsFromPlistFileName("RemoteConfigDefaults")
    // Important! This needs to be applied before FirebaseApp.configure()
    if !remoteConfig["perf_disable"].boolValue {
        // The following line disables all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    // You can change the NO below to YES to permit more fetches when validating
    // your app, but you should change it back to NO or remove this statement before
    // distributing your app in production.
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:NO];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Load in-app defaults from a plist file that sets perf_disable to false until
    // you update values in the Firebase console.
    [self.remoteConfig setDefaultsFromPlistFileName:@"RemoteConfigDefaults"];
    // Important! This needs to be applied before [FIRApp configure]
    if (!self.remoteConfig[@"perf_disable"].numberValue.boolValue) {
        // The following line disables all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. Fügen Sie in ViewController.m oder einer anderen von Ihrer App verwendeten Implementierungsdatei den folgenden Code hinzu, um Remote-Konfigurationswerte abzurufen und zu aktivieren:

    Schnell

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    //RemoteConfig fetch and activation in your app, shortly after startup
    remoteConfig.fetch(withExpirationDuration: TimeInterval(30.0)) { (status, error) -> Void in
      if status == .success {
        print("Config fetched!")
        self.remoteConfig.activateFetched()
      } else {
        print("Config not fetched")
        print("Error \(error!.localizedDescription)")
      }
    }
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    //RemoteConfig fetch and activation in your app, shortly after startup
    [self.remoteConfig fetchWithExpirationDuration:30.0 completionHandler:^(FIRRemoteConfigFetchStatus status, NSError *error) {
      if (status == FIRRemoteConfigFetchStatusSuccess) {
        NSLog(@"Config fetched!");
        [self.remoteConfig activateFetched];
      } else {
        NSLog(@"Config not fetched");
        NSLog(@"Error %@", error.localizedDescription);
      }
    }];
    
  5. Um die Leistungsüberwachung in der Firebase-Konsole zu deaktivieren, erstellen Sie einen perf_disable- Parameter im Projekt Ihrer App und legen Sie dann seinen Wert auf true fest.

    Wenn Sie den Wert von perf_disable auf false setzen, bleibt die Leistungsüberwachung aktiviert.

Deaktivieren Sie die automatische oder benutzerdefinierte Datenerfassung separat

Sie können einige Änderungen am oben gezeigten Code und in der Firebase-Konsole vornehmen, um die gesamte automatische (standardmäßige) Überwachung getrennt von der benutzerdefinierten Überwachung zu deaktivieren.

  1. Fügen Sie den folgenden Code zu den launchOptions Anweisungen in der application:didFinishLaunchingWithOptions: -Instanzmethode hinzu (anstelle dessen, was oben für dieselbe Instanzmethode gezeigt wird):

    Schnell

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    remoteConfig = FIRRemoteConfig.remoteConfig()
    let remoteConfigSettings = FIRRemoteConfigSettings(developerModeEnabled: true)
    remoteConfig.configSettings = remoteConfigSettings!
    // Important! This needs to be applied before FirebaseApp.configure()
    if remoteConfig["perf_disable_auto"].boolValue {
        // The following line disables all automatic (out-of-the-box) monitoring
        Performance.sharedInstance().isInstrumentationEnabled = false
    }
    else {
        Performance.sharedInstance().isInstrumentationEnabled = true
    }
    if remoteConfig["perf_disable_manual"].boolValue {
        // The following line disables all custom monitoring
        Performance.sharedInstance().isDataCollectionEnabled = false
    }
    else {
        Performance.sharedInstance().isDataCollectionEnabled = true
    }
    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    Ziel c

    Hinweis: Dieses Firebase-Produkt ist nicht auf macOS-, Mac Catalyst- und watchOS-Zielen verfügbar.
    self.remoteConfig = [FIRRemoteConfig remoteConfig];
    FIRRemoteConfigSettings *remoteConfigSettings =
        [[FIRRemoteConfigSettings alloc] initWithDeveloperModeEnabled:YES];
    self.remoteConfig.configSettings = remoteConfigSettings;
    // Important! This needs to be applied before [FirebaseApp configure]
    if (self.remoteConfig[@"perf_disable_auto"].numberValue.boolValue) {
        // The following line disables all automatic (out-of-the-box) monitoring
        [FIRPerformance sharedInstance].instrumentationEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].instrumentationEnabled = YES;
    }
    if (self.remoteConfig[@"perf_disable_manual"].numberValue.boolValue) {
        // The following line disables all custom monitoring
        [FIRPerformance sharedInstance].dataCollectionEnabled = NO;
    }
    else {
        [FIRPerformance sharedInstance].dataCollectionEnabled = YES;
    }
    // Use Firebase library to configure APIs
    [FirebaseApp configure];
    
  2. Führen Sie in der Firebase-Konsole Folgendes aus:

    • Um die gesamte automatische (standardmäßige) Überwachung zu deaktivieren, erstellen Sie einen perf_disable_auto- Parameter im Projekt Ihrer App und legen Sie dann seinen Wert auf true fest.
    • Um die gesamte benutzerdefinierte Überwachung zu deaktivieren, erstellen Sie im Projekt Ihrer App einen perf_disable_manual- Parameter und legen Sie dann seinen Wert auf true fest.