How to disable/remove FirebaseAnalytics

2019-01-07 22:39发布

问题:

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.

回答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.



回答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.



回答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



回答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.