Skip to content

Firebase sending out calls to firebaseinstallations.googleapis.com without consent #15513

@cmittendorf

Description

@cmittendorf

Description

When launching our app after a fresh install, we want our app to not perform any networking calls to external services without the customer consent. Therefore we delayed the init calls for Analytics and Crashlytics. We also added the following keys to the apps Info.plist file:

<key>GoogleUtilitiesAppDelegateProxyEnabled</key>
<false/>
<key>FirebaseAppDelegateProxyEnabled</key>
<false/>
<key>FirebaseDataCollectionDefaultEnabled</key>
<false/>
<key>FIREBASE_ANALYTICS_COLLECTION_ENABLED</key>
<false/>
<key>FirebaseCrashlyticsCollectionEnabled</key>
<false/>
<key>FirebaseMessagingAutoInitEnabled</key>
<false/>

However, when the app launches, we still still see a call to

https://firebaseinstallations.googleapis.com/v1/projects/<project name>/installations/

How can we prevent the app from performing this call?

Reproducing the issue

No response

Firebase SDK Version

12.6.0

Xcode Version

26.1

Installation Method

Swift Package Manager

Firebase Product(s)

Crashlytics, Analytics

Targeted Platforms

iOS

Relevant Log Output

12.6.0 - [FirebaseCore][I-COR000003] The default Firebase app has not yet been configured. Add `FirebaseApp.configure()` to your application initialization. This can be done in in the App Delegate's application(_:didFinishLaunchingWithOptions:)` (or the `@main` struct's initializer in SwiftUI). Read more: https://firebase.google.com/docs/ios/setup#initialize_firebase_in_your_app
12.6.0 - [FirebaseCore][I-COR000001] Configuring the default app.
12.6.0 - [GULReachability][I-REA902003] Monitoring the network status
12.6.0 - [GULReachability][I-REA902003] Monitoring the network status
12.6.0 - [FirebaseInstallations][I-FIS002000] -[FIRInstallationsIDController createGetInstallationItemPromise], appName: __FIRAPP_DEFAULT
12.6.0 - [FirebaseSessions][I-SES000000] Version 12.6.0. Expecting subscriptions from: [Crashlytics]
12.6.0 - [FirebaseCrashlytics][I-CLS000000] [Crashlytics] Running on iOS Simulator (iPad), 26.1.0 (25B78)
12.6.0 - [FirebaseAnalytics][I-ACS020009] GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED = NO
12.6.0 - [FirebaseAnalytics][I-ACS023007] Analytics v.12.6.0 started
12.6.0 - [FirebaseAnalytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
12.6.0 - [FirebaseAnalytics][I-ACS023009] Debug logging enabled
12.6.0 - [FirebaseAnalytics][I-ACS023207] To enable verbose logging set the following application argument: -FIRAnalyticsVerboseLoggingEnabled (see http://goo.gl/RfcP7r)
12.6.0 - [FirebaseAnalytics][I-ACS025036] App Delegate Proxy is disabled
12.6.0 - [FirebaseAnalytics][I-ACS025033] Personalized Ads property changed while Analytics is disabled
12.6.0 - [FirebaseAnalytics][I-ACS023013] Analytics collection disabled
12.6.0 - [FirebaseAnalytics][I-ACS002002] APMExperimentAlarm scheduled to fire in approx. (s): 9.999990940093994
12.6.0 - [FirebaseCrashlytics][I-CLS000000] Generating Install ID
12.6.0 - [FirebaseCrashlytics][I-CLS000000] Registering Sessions SDK subscription for session data
12.6.0 - [FirebaseSessions][I-SES000000] Registering Sessions SDK subscriber with name: Crashlytics, data collection enabled: false
12.6.0 - [FirebaseCrashlytics][I-CLS000000] Session ID changed: xxxxx
12.6.0 - [FirebaseCrashlytics][I-CLS000000] [Crashlytics:Settings] No settings were cached
12.6.0 - [FirebaseCrashlytics][I-CLS000000] Root: /Users/xxxx/Library/Developer/CoreSimulator/Devices/xxxx/data/Containers/Data/Application/xxxx/Library/Caches/com.crashlytics.data/xxxx
12.6.0 - [FirebaseCrashlytics][I-CLS000000] Automatic data collection is disabled.
12.6.0 - [FirebaseCrashlytics][I-CLS000000] [Crashlytics:Crash] 0 unsent reports are available. Waiting for send/deleteUnsentReports to be called.
12.6.0 - [GULReachability][I-REA902004] Network status has changed. Code:2, status:Connected
12.6.0 - [GULReachability][I-REA902004] Network status has changed. Code:2, status:Connected
12.6.0 - [FirebaseCrashlytics][I-CLS000000] [Crashlytics:Crash:Reports:Event] Registered Firebase Analytics event listener to receive breadcrumb logs
12.6.0 - [FirebaseCore][I-COR000032] Data Collection flag is disabled in plist.
12.6.0 - [FirebaseInstallations][I-FIS002001] -[FIRInstallationsIDController installationWithValidAuthTokenForcingRefresh:0], appName: __FIRAPP_DEFAULT
12.6.0 - [FirebaseInstallations][I-FIS001001] Sending request: <NSMutableURLRequest: 0x6000002ca420> { URL: https://firebaseinstallations.googleapis.com/v1/projects/xxxx/installations/ }, body:{"appId":"xxxx","fid":"xxxxx","authVersion":"FIS_v2","sdkVersion":"i:12.6.0"}, headers: {
    "Content-Type" = "application/json";
    "X-Goog-Api-Key" = "xxxxx";
    "X-Ios-Bundle-Identifier" = "xxxxx";
}.
12.6.0 - [FirebaseInstallations][I-FIS001003] Request response received: <NSMutableURLRequest: 0x6000002ca420> { URL: https://firebaseinstallations.googleapis.com/v1/projects/xxxxx/installations/ }, error: (null), body: {
  "name": "xxxxx",
  "fid": "xxxxx",
  "refreshToken": "xxxx",
  "authToken": {
    "token": "xxxx",
    "expiresIn": "604800s"
  }
}
.
12.6.0 - [FirebaseInstallations][I-FIS001005] Parsing server response for https://firebaseinstallations.googleapis.com/v1/projects/xxxx/installations/.
12.6.0 - [FirebaseInstallations][I-FIS001007] FIRInstallationsItem parsed successfully.
12.6.0 - [FirebaseSessions][I-SES000000] Data Collection is disabled for all subscribers. Skipping this Session Event
12.6.0 - [FirebaseAnalytics][I-ACS002001] APMExperimentAlarm fired
12.6.0 - [FirebaseAnalytics][I-ACS002003] APMExperimentAlarm canceled
12.6.0 - [FirebaseAnalytics][I-ACS002002] APMExperimentAlarm scheduled to fire in approx. (s): 14399.99120306969

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
{
  "originHash" : "2df097501e62d808b5f3d4a0a6bb87d659f933e7341809c752e0cca5070382ba",
  "pins" : [
    {
      "identity" : "abseil-cpp-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/abseil-cpp-binary.git",
      "state" : {
        "revision" : "bbe8b69694d7873315fd3a4ad41efe043e1c07c5",
        "version" : "1.2024072200.0"
      }
    },
    {
      "identity" : "app-check",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/app-check.git",
      "state" : {
        "revision" : "61b85103a1aeed8218f17c794687781505fbbef5",
        "version" : "11.2.0"
      }
    },
    {
      "identity" : "firebase-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "git@github.com:firebase/firebase-ios-sdk.git",
      "state" : {
        "revision" : "087bb95235f676c1a37e928769a5b6645dcbd325",
        "version" : "12.6.0"
      }
    },
    {
      "identity" : "google-ads-on-device-conversion-ios-sdk",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/googleads/google-ads-on-device-conversion-ios-sdk",
      "state" : {
        "revision" : "35b601a60fbbea2de3ea461f604deaaa4d8bbd0c",
        "version" : "3.2.0"
      }
    },
    {
      "identity" : "googleappmeasurement",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleAppMeasurement.git",
      "state" : {
        "revision" : "c2d59acf17a8ba7ed80a763593c67c9c7c006ad1",
        "version" : "12.5.0"
      }
    },
    {
      "identity" : "googledatatransport",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleDataTransport.git",
      "state" : {
        "revision" : "617af071af9aa1d6a091d59a202910ac482128f9",
        "version" : "10.1.0"
      }
    },
    {
      "identity" : "googleutilities",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/GoogleUtilities.git",
      "state" : {
        "revision" : "60da361632d0de02786f709bdc0c4df340f7613e",
        "version" : "8.1.0"
      }
    },
    {
      "identity" : "grpc-binary",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/grpc-binary.git",
      "state" : {
        "revision" : "75b31c842f664a0f46a2e590a570e370249fd8f6",
        "version" : "1.69.1"
      }
    },
    {
      "identity" : "gtm-session-fetcher",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/gtm-session-fetcher.git",
      "state" : {
        "revision" : "fb7f2740b1570d2f7599c6bb9531bf4fad6974b7",
        "version" : "5.0.0"
      }
    },
    {
      "identity" : "interop-ios-for-google-sdks",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/interop-ios-for-google-sdks.git",
      "state" : {
        "revision" : "040d087ac2267d2ddd4cca36c757d1c6a05fdbfe",
        "version" : "101.0.0"
      }
    },
    {
      "identity" : "leveldb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/leveldb.git",
      "state" : {
        "revision" : "a0bc79961d7be727d258d33d5a6b2f1023270ba1",
        "version" : "1.22.5"
      }
    },
    {
      "identity" : "nanopb",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/firebase/nanopb.git",
      "state" : {
        "revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
        "version" : "2.30910.0"
      }
    },
    {
      "identity" : "promises",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/google/promises.git",
      "state" : {
        "revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
        "version" : "2.4.0"
      }
    },
  ],
  "version" : 3
}

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions