How to disable/remove FirebaseAnalytics

40,440

Solution 1

To disable the collection of data by Firebase Analytics in your app, see the instructions here.

In summary, to disable temporarily, set FIREBASE_ANALYTICS_COLLECTION_ENABLED to NO in the GoogleServices-Info.plist file. To disable permanently, set FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED to YES in the same plist file.

Solution 2

For 2018

For 2018, you Info.plist will have entries like this:

<key>FIREBASE_ANALYTICS_COLLECTION_ENABLED</key>
<string>NO</string>
<key>FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED</key>
<string>YES</string>
<key>FirebaseScreenReportingEnabled</key>
<false/>

It seems to be in Info.plist, NOT GoogleServices-Info.plist.

Solution 3

I recently ran into a similar issue. I'm using Google Analytics but do not want or need Firebase analytics, which is installed by default if you follow the docs. After searching through the podspecs. I found that the Google/Analytics subspec has a dependency on Google/Core. The core subspec in turn depends on FirebaseAnalytics which is why it is getting installed.

I noticed, however, that the Analytics subspec also depends on the GoogleAnalytics cocoapods.

So I changed my Podfile from:

target 'myApp' do
    inhibit_all_warnings!
    use_frameworks!
    pod 'Google/Analytics'
end

To this:

target 'myApp' do
    inhibit_all_warnings!
    use_frameworks!
    pod 'GoogleAnalytics'
end

As a result, the Google/Analytics.h umbrella header is no longer available, and you need to include the correct headers manually or create your own umbrella header with the following includes:

#import "GAI.h"
#import "GAIDictionaryBuilder.h"
#import "GAIEcommerceFields.h"
#import "GAIEcommerceProduct.h"
#import "GAIEcommerceProductAction.h"
#import "GAIEcommercePromotion.h"
#import "GAIFields.h"
#import "GAILogger.h"
#import "GAITrackedViewController.h"
#import "GAITracker.h"

If you're doing this in a Swift project, you'll need to add these files to your bridging header in place of the umbrella header.

In my opinion, this is a small price to pay to not be forced to install the FirebaseAnalytics cocoapod.

Update

Although Google's docs haven't been updated, their podspec now tells you to use the GoogleAnalytics pod directly

Solution 4

Those logs are not actually from Firebase Analytics but the Firebase Core SDK (based on the URL that it sent to). Therefore, disabling the Firebase Analytics will not eliminate those logs. I guess there was a problem with the device network that the requests from Firebase SDK were cancelled.

Share:
40,440
nahung89
Author by

nahung89

iOS engineer. Axon. Vietnam.

Updated on August 07, 2020

Comments

  • nahung89
    nahung89 almost 4 years

    I update 'Google/Analytics' from CocoaPod and get FirebaseAnalytics.

    After that, each time I run project, the FirebaseAnalytics turns out many error loggings.

    Currently I don't use this library and want to remove it. Unfortunately I can't find any way to disable / remove it out of Pod.

    Here is the Podfile configuration

    target 'myApp' do
        inhibit_all_warnings!
        use_frameworks!
        pod 'Google/Analytics'
    end
    

    Console log:

    <FIRAnalytics/DEBUG> Debug mode is on
    <FIRAnalytics/INFO> Firebase Analytics v.3200000 started
    <FIRAnalytics/INFO> To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see 'https://developer.apple.com/library/ios/recipes/xcode_help-scheme_editor/Articles/SchemeRun.html')
    <FIRAnalytics/DEBUG> Debug logging enabled
    <FIRAnalytics/DEBUG> Firebase Analytics is monitoring the network status
    <FIRAnalytics/DEBUG> Uploading data. Host: https://play.googleapis.com/log
    <FIRAnalytics/INFO> Successfully created Firebase Analytics App Delegate Proxy automatically. To disable the proxy, set the flag FirebaseAppDelegateProxyEnabled to NO in the Info.plist
    <FIRAnalytics/INFO> Firebase Analytics disabled
    ...
    <FIRAnalytics/DEBUG> Network status has changed. code, status: 2, Connected
    <FIRAnalytics/DEBUG> Network status has changed. code, status: 2, Connected
    <FIRAnalytics/DEBUG> Received SSL challenge for host. Host: https://play.googleapis.com/log
    <FIRAnalytics/DEBUG> Cancelling authentication challenge for host. Host: https://play.googleapis.com/log
    <FIRAnalytics/ERROR> Encounter network error. Error: Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo={NSErrorFailingURLKey=https://play.googleapis.com/log, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=https://play.googleapis.com/log}
    ...
    

    UPDATE: I also try to add FirebaseAppDelegateProxyEnabled = false in Info.plist but it doesn't work either.

    enter image description here