@react-native-firebase/analytics 26.0.0 → 26.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [26.2.0](https://github.com/invertase/react-native-firebase/compare/v26.1.0...v26.2.0) (2026-08-10)
7
+
8
+ ### Bug Fixes
9
+
10
+ - codegen should be wipe-then-regen ([04bc4e4](https://github.com/invertase/react-native-firebase/commit/04bc4e4cdab9870cb366fd212b2ccb331b0289d6))
11
+
12
+ ## [26.1.0](https://github.com/invertase/react-native-firebase/compare/v26.0.0...v26.1.0) (2026-08-03)
13
+
14
+ ### Features
15
+
16
+ - **ios:** add SPM dependency resolution support alongside CocoaPods ([#8933](https://github.com/invertase/react-native-firebase/issues/8933)) ([44a7a9a](https://github.com/invertase/react-native-firebase/commit/44a7a9ae7b404f412e9766c0417f1df8fa971a0b))
17
+
6
18
  ## [26.0.0](https://github.com/invertase/react-native-firebase/compare/v25.1.0...v26.0.0) (2026-07-29)
7
19
 
8
20
  ### ⚠ BREAKING CHANGES
@@ -1,4 +1,5 @@
1
1
  require 'json'
2
+ require_relative '../app/firebase_spm'
2
3
  package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
3
4
  appPackage = JSON.parse(File.read(File.join('..', 'app', 'package.json')))
4
5
 
@@ -49,27 +50,64 @@ Pod::Spec.new do |s|
49
50
  end
50
51
 
51
52
  # Firebase dependencies
52
- s.dependency 'FirebaseAnalytics/Core', firebase_sdk_version
53
- if defined?($RNFirebaseAnalyticsWithoutAdIdSupport) && ($RNFirebaseAnalyticsWithoutAdIdSupport == true)
54
- Pod::UI.puts "#{s.name}: Not installing FirebaseAnalytics/IdentitySupport Pod, no IDFA will be collected."
53
+ # Analytics has conditional dependencies that vary between SPM and CocoaPods.
54
+ # SPM: use FirebaseAnalyticsCore when $RNFirebaseAnalyticsWithoutAdIdSupport = true
55
+ # to avoid GoogleAppMeasurement APM symbols (APMETaskManager, APMMeasurement)
56
+ # that require FirebasePerformance at link time.
57
+ # CocoaPods: IdentitySupport is a separate subspec controlled by $RNFirebaseAnalyticsWithoutAdIdSupport.
58
+ if defined?(spm_dependency) && !rnfirebase_spm_disabled? &&
59
+ defined?($RNFirebaseAnalyticsWithoutAdIdSupport) && $RNFirebaseAnalyticsWithoutAdIdSupport
60
+ # FirebaseAnalyticsCore uses GoogleAppMeasurementCore (no IDFA, no APM objects).
61
+ # FirebaseAnalytics uses GoogleAppMeasurement which has APMETaskManager/APMMeasurement
62
+ # cross-references that cause linker errors when FirebasePerformance is not linked.
63
+ Pod::UI.puts "#{s.name}: Using FirebaseAnalyticsCore SPM product (no IDFA, uses GoogleAppMeasurementCore)."
64
+ firebase_dependency(s, firebase_sdk_version, ['FirebaseAnalyticsCore'], 'FirebaseAnalytics/Core')
55
65
  else
56
- if !defined?($RNFirebaseAnalyticsWithoutAdIdSupport)
57
- Pod::UI.puts "#{s.name}: Using FirebaseAnalytics/IdentitySupport with Ad Ids. May require App Tracking Transparency. Not allowed for Kids apps."
58
- Pod::UI.puts "#{s.name}: You may set variable `$RNFirebaseAnalyticsWithoutAdIdSupport=true` in Podfile to use analytics without ad ids."
59
- end
60
- s.dependency 'FirebaseAnalytics/IdentitySupport', firebase_sdk_version
66
+ firebase_dependency(s, firebase_sdk_version, ['FirebaseAnalytics'], 'FirebaseAnalytics/Core')
67
+ end
61
68
 
62
- # Special pod for on-device conversion
63
- if defined?($RNFirebaseAnalyticsEnableAdSupport) && ($RNFirebaseAnalyticsEnableAdSupport == true)
64
- Pod::UI.puts "#{s.name}: Adding Apple AdSupport.framework dependency for optional analytics features"
65
- s.frameworks = 'AdSupport'
69
+ unless defined?(spm_dependency) && !rnfirebase_spm_disabled?
70
+ # CocoaPods-only: conditional IdentitySupport subspec
71
+ if defined?($RNFirebaseAnalyticsWithoutAdIdSupport) && ($RNFirebaseAnalyticsWithoutAdIdSupport == true)
72
+ Pod::UI.puts "#{s.name}: Not installing FirebaseAnalytics/IdentitySupport Pod, no IDFA will be collected."
73
+ else
74
+ if !defined?($RNFirebaseAnalyticsWithoutAdIdSupport)
75
+ Pod::UI.puts "#{s.name}: Using FirebaseAnalytics/IdentitySupport with Ad Ids. May require App Tracking Transparency. Not allowed for Kids apps."
76
+ Pod::UI.puts "#{s.name}: You may set variable `$RNFirebaseAnalyticsWithoutAdIdSupport=true` in Podfile to use analytics without ad ids."
77
+ end
78
+ s.dependency 'FirebaseAnalytics/IdentitySupport', firebase_sdk_version
66
79
  end
67
80
  end
68
81
 
69
- # Special pod for on-device conversion
82
+ # AdSupport framework (works with both SPM and CocoaPods)
83
+ if defined?($RNFirebaseAnalyticsEnableAdSupport) && ($RNFirebaseAnalyticsEnableAdSupport == true)
84
+ Pod::UI.puts "#{s.name}: Adding Apple AdSupport.framework dependency for optional analytics features"
85
+ s.frameworks = 'AdSupport'
86
+ end
87
+
88
+ # GoogleAdsOnDeviceConversion
89
+ # Not part of firebase-ios-sdk's own Package.swift, but Google publishes it as
90
+ # its own standalone SPM package (googleads/google-ads-on-device-conversion-ios-sdk),
91
+ # independent of the Firebase package graph. Resolved via a second, independent
92
+ # spm_dependency() call -- RN's SPMManager keys dependencies by pod target and
93
+ # package URL, so multiple unrelated SPM packages on the same pod target are
94
+ # supported. If linker errors occur (some consumers have hit this when the
95
+ # dependency sits behind an indirect/wrapper package -- see
96
+ # https://github.com/firebase/firebase-ios-sdk/issues/15916), try adding
97
+ # `-ObjC` and `-lc++` to the app target's "Other Linker Settings".
98
+ # See: https://developers.google.com/google-ads/api/docs/conversions/upload-identifiers
70
99
  if defined?($RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion) && ($RNFirebaseAnalyticsGoogleAppMeasurementOnDeviceConversion == true)
71
- Pod::UI.puts "#{s.name}: GoogleAdsOnDeviceConversion pod added"
72
- s.dependency 'GoogleAdsOnDeviceConversion'
100
+ if defined?(spm_dependency) && !rnfirebase_spm_disabled?
101
+ Pod::UI.puts "#{s.name}: Using GoogleAdsOnDeviceConversion SPM package."
102
+ spm_dependency(s,
103
+ url: 'https://github.com/googleads/google-ads-on-device-conversion-ios-sdk.git',
104
+ requirement: { kind: 'upToNextMajorVersion', minimumVersion: '3.6.1' },
105
+ products: ['GoogleAdsOnDeviceConversion']
106
+ )
107
+ else
108
+ Pod::UI.puts "#{s.name}: GoogleAdsOnDeviceConversion pod added"
109
+ s.dependency 'GoogleAdsOnDeviceConversion'
110
+ end
73
111
  end
74
112
 
75
113
  if defined?($RNFirebaseAsStaticFramework)
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
 
3
3
  // Generated by genversion.
4
- export const version = '26.0.0';
4
+ export const version = '26.2.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -1,2 +1,2 @@
1
- export declare const version = "26.0.0";
1
+ export declare const version = "26.2.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -15,7 +15,15 @@
15
15
  *
16
16
  */
17
17
 
18
+ #if __has_include(<Firebase/Firebase.h>)
18
19
  #import <Firebase/Firebase.h>
20
+ #elif __has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)
21
+ #import <FirebaseAnalytics/FirebaseAnalytics.h>
22
+ #import <FirebaseCore/FirebaseCore.h>
23
+ #else
24
+ @import FirebaseCore;
25
+ @import FirebaseAnalytics;
26
+ #endif
19
27
  #import <React/RCTUtils.h>
20
28
 
21
29
  #if __has_include(<RNFBAnalytics/RNFBAnalytics-Swift.h>)
package/lib/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '26.0.0';
2
+ export const version = '26.2.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-firebase/analytics",
3
- "version": "26.0.0",
3
+ "version": "26.2.0",
4
4
  "author": "Invertase <oss@invertase.io> (http://invertase.io)",
5
5
  "description": "React Native Firebase - The analytics module provides out of the box support with Google Analytics for Firebase. Integration with the Android & iOS allows for in-depth analytical insight reporting, such as device information, location, user actions and more.",
6
6
  "main": "./dist/module/index.js",
@@ -27,8 +27,8 @@
27
27
  "compile": "bob build",
28
28
  "prepare": "yarn run build && yarn run build:plugin && yarn compile",
29
29
  "codegen": "yarn android:codegen && yarn ios:codegen",
30
- "android:codegen": "npx @react-native-community/cli codegen --platform android --outputPath=./android/src/reactnative/java/io/invertase/firebase/analytics/generated",
31
- "ios:codegen": "npx @react-native-community/cli codegen --platform ios --outputPath=./ios/generated"
30
+ "android:codegen": "rimraf android/src/reactnative/java/io/invertase/firebase/analytics/generated && npx @react-native-community/cli codegen --platform android --outputPath=./android/src/reactnative/java/io/invertase/firebase/analytics/generated",
31
+ "ios:codegen": "rimraf ios/generated && npx @react-native-community/cli codegen --platform ios --outputPath=./ios/generated"
32
32
  },
33
33
  "repository": {
34
34
  "type": "git",
@@ -42,7 +42,7 @@
42
42
  "analytics"
43
43
  ],
44
44
  "peerDependencies": {
45
- "@react-native-firebase/app": "26.0.0",
45
+ "@react-native-firebase/app": "26.2.0",
46
46
  "expo": ">=47.0.0"
47
47
  },
48
48
  "publishConfig": {
@@ -53,7 +53,7 @@
53
53
  "superstruct": "^2.0.2"
54
54
  },
55
55
  "devDependencies": {
56
- "@react-native-firebase/app": "26.0.0",
56
+ "@react-native-firebase/app": "26.2.0",
57
57
  "expo": "^55.0.18",
58
58
  "react-native-builder-bob": "^0.41.0",
59
59
  "typescript": "^6.0.3"
@@ -101,5 +101,5 @@
101
101
  "node_modules/",
102
102
  "dist/"
103
103
  ],
104
- "gitHead": "2a360acb2aebdd39dd40e31be386b30697270626"
104
+ "gitHead": "b7efa8ca2781b5102975ee5169ee6fc52e9c1588"
105
105
  }