@react-native-firebase/app-distribution 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
 
@@ -43,7 +44,7 @@ Pod::Spec.new do |s|
43
44
  end
44
45
 
45
46
  # Firebase dependencies
46
- s.dependency 'Firebase/AppDistribution', firebase_sdk_version
47
+ firebase_dependency(s, firebase_sdk_version, ['FirebaseAppDistribution-Beta'], 'Firebase/AppDistribution')
47
48
 
48
49
  if defined?($RNFirebaseAsStaticFramework)
49
50
  Pod::UI.puts "#{s.name}: Using overridden static_framework value of '#{$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,7 +1,7 @@
1
1
  import type { FirebaseApp } from '@react-native-firebase/app';
2
2
  import './types/internal';
3
3
  import type { AppDistribution, AppDistributionRelease } from './types/app-distribution';
4
- export declare const SDK_VERSION = "26.0.0";
4
+ export declare const SDK_VERSION = "26.2.0";
5
5
  /**
6
6
  * Returns the {@link AppDistribution} instance for the default or given {@link FirebaseApp}.
7
7
  */
@@ -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,18 @@
15
15
  *
16
16
  */
17
17
 
18
+ #if __has_include(<Firebase/Firebase.h>)
18
19
  #import <Firebase/Firebase.h>
20
+ #define RNFB_APP_DISTRIBUTION_SDK_AVAILABLE 1
21
+ #elif __has_include(<FirebaseAppDistribution/FirebaseAppDistribution.h>)
22
+ #import <FirebaseAppDistribution/FirebaseAppDistribution.h>
23
+ #import <FirebaseCore/FirebaseCore.h>
24
+ #define RNFB_APP_DISTRIBUTION_SDK_AVAILABLE 1
25
+ #else
26
+ // Product headers absent (typical Mac Catalyst + SPM). Never fall through to
27
+ // @import in this .mm — that requires -fcxx-modules and breaks RN C++/JSI.
28
+ #define RNFB_APP_DISTRIBUTION_SDK_AVAILABLE 0
29
+ #endif
19
30
  #import <React/RCTUtils.h>
20
31
 
21
32
  #import "RNFBApp/RNFBSharedUtils.h"
@@ -34,13 +45,30 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppDistribution)
34
45
  return std::make_shared<facebook::react::NativeRNFBTurboAppDistributionSpecJSI>(params);
35
46
  }
36
47
 
48
+ #if !RNFB_APP_DISTRIBUTION_SDK_AVAILABLE
49
+ - (void)rejectUnavailable:(RCTPromiseRejectBlock)reject {
50
+ [RNFBSharedUtils rejectPromiseWithUserInfo:reject
51
+ userInfo:(NSMutableDictionary *)@{
52
+ @"code" : @"unsupported",
53
+ @"message" : @"Firebase App Distribution is not available on "
54
+ @"this platform or dependency configuration.",
55
+ }];
56
+ }
57
+ #endif
58
+
37
59
  - (void)isTesterSignedIn:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
60
+ #if RNFB_APP_DISTRIBUTION_SDK_AVAILABLE
38
61
  FIRAppDistribution *appDistribution = [FIRAppDistribution appDistribution];
39
62
  BOOL isTesterSignedIn = appDistribution.isTesterSignedIn;
40
63
  resolve([NSNumber numberWithBool:isTesterSignedIn]);
64
+ #else
65
+ (void)resolve;
66
+ [self rejectUnavailable:reject];
67
+ #endif
41
68
  }
42
69
 
43
70
  - (void)signInTester:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
71
+ #if RNFB_APP_DISTRIBUTION_SDK_AVAILABLE
44
72
  FIRAppDistribution *appDistribution = [FIRAppDistribution appDistribution];
45
73
  [appDistribution signInTesterWithCompletion:^(NSError *_Nullable error) {
46
74
  if (error != nil) {
@@ -55,14 +83,24 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppDistribution)
55
83
 
56
84
  resolve([NSNull null]);
57
85
  }];
86
+ #else
87
+ (void)resolve;
88
+ [self rejectUnavailable:reject];
89
+ #endif
58
90
  }
59
91
 
60
92
  - (void)signOutTester:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
93
+ #if RNFB_APP_DISTRIBUTION_SDK_AVAILABLE
61
94
  [[FIRAppDistribution appDistribution] signOutTester];
62
95
  resolve([NSNull null]);
96
+ #else
97
+ (void)resolve;
98
+ [self rejectUnavailable:reject];
99
+ #endif
63
100
  }
64
101
 
65
102
  - (void)checkForUpdate:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
103
+ #if RNFB_APP_DISTRIBUTION_SDK_AVAILABLE
66
104
  FIRAppDistribution *appDistribution = [FIRAppDistribution appDistribution];
67
105
  [appDistribution checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
68
106
  NSError *_Nullable error) {
@@ -93,6 +131,10 @@ RCT_EXPORT_MODULE(NativeRNFBTurboAppDistribution)
93
131
  @"downloadURL" : release.downloadURL.absoluteString
94
132
  });
95
133
  }];
134
+ #else
135
+ (void)resolve;
136
+ [self rejectUnavailable:reject];
137
+ #endif
96
138
  }
97
139
 
98
140
  @end
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/app-distribution",
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 - App Distribution",
6
6
  "main": "./dist/module/index.js",
@@ -27,8 +27,8 @@
27
27
  "lint:plugin": "eslint plugin/src/*",
28
28
  "prepare": "yarn run build && yarn compile && yarn run build:plugin",
29
29
  "codegen": "yarn android:codegen && yarn ios:codegen",
30
- "android:codegen": "npx @react-native-community/cli codegen --platform android --outputPath=./android/src/main/java/io/invertase/firebase/appdistribution/generated",
31
- "ios:codegen": "npx @react-native-community/cli codegen --platform ios --outputPath=./ios/generated"
30
+ "android:codegen": "rimraf android/src/main/java/io/invertase/firebase/appdistribution/generated && npx @react-native-community/cli codegen --platform android --outputPath=./android/src/main/java/io/invertase/firebase/appdistribution/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,11 +42,11 @@
42
42
  "app-distribution"
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
  "devDependencies": {
49
- "@react-native-firebase/app": "26.0.0",
49
+ "@react-native-firebase/app": "26.2.0",
50
50
  "expo": "^55.0.18",
51
51
  "react-native-builder-bob": "^0.41.0"
52
52
  },
@@ -97,5 +97,5 @@
97
97
  "node_modules/",
98
98
  "dist/"
99
99
  ],
100
- "gitHead": "2a360acb2aebdd39dd40e31be386b30697270626"
100
+ "gitHead": "b7efa8ca2781b5102975ee5169ee6fc52e9c1588"
101
101
  }