@react-native-firebase/app-check 26.3.3 → 27.0.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.
Files changed (35) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/RNFBAppCheck.podspec +8 -2
  3. package/android/build.gradle +5 -0
  4. package/android/src/main/java/io/invertase/firebase/appcheck/AppCheckListenerHandle.java +26 -0
  5. package/android/src/main/java/io/invertase/firebase/appcheck/NativeRNFBTurboAppCheck.java +24 -44
  6. package/android/src/main/java/io/invertase/firebase/appcheck/RNFBAppCheckListenerRegistry.kt +72 -0
  7. package/android/src/test/java/io/invertase/firebase/appcheck/RNFBAppCheckListenerRegistryTest.java +171 -0
  8. package/dist/module/index.js +1 -2
  9. package/dist/module/index.js.map +1 -1
  10. package/dist/module/version.js +1 -1
  11. package/dist/typescript/lib/index.d.ts +1 -1
  12. package/dist/typescript/lib/index.d.ts.map +1 -1
  13. package/dist/typescript/lib/version.d.ts +1 -1
  14. package/ios/RNFBAppCheck/RNFBAppCheckHelper.h +61 -0
  15. package/ios/RNFBAppCheck/RNFBAppCheckHelper.m +213 -0
  16. package/ios/RNFBAppCheck/RNFBAppCheckModule.mm +22 -155
  17. package/ios/RNFBAppCheck/RNFBAppCheckRejectCodeMapper.swift +50 -0
  18. package/ios/RNFBAppCheck.xcodeproj/project.pbxproj +14 -0
  19. package/ios/RNFBAppCheckUnitTests/HostStubs/Firebase/FIRAppCheckHostStub.m +109 -0
  20. package/ios/RNFBAppCheckUnitTests/HostStubs/Firebase/Firebase.h +47 -0
  21. package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RCTConvert+FIRApp.h +13 -0
  22. package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RCTConvert+FIRAppHostStub.m +27 -0
  23. package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RNFBSharedUtils.h +18 -0
  24. package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBApp/RNFBSharedUtilsHostStub.m +18 -0
  25. package/ios/RNFBAppCheckUnitTests/HostStubs/RNFBAppCheck/RNFBAppCheckProviderHostStub.m +48 -0
  26. package/ios/RNFBAppCheckUnitTests/HostStubs/React/RCTBridgeModule.h +10 -0
  27. package/ios/RNFBAppCheckUnitTests/RNFBAppCheckHelperHostStubTests.m +197 -0
  28. package/ios/RNFBAppCheckUnitTests/RNFBAppCheckRejectCodeMapperTests.swift +85 -0
  29. package/ios/RNFBAppCheckUnitTests/RNFBAppCheckUnitTests.xcodeproj/project.pbxproj +277 -0
  30. package/ios/RNFBAppCheckUnitTests/RNFBAppCheckUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBAppCheckUnitTests.xcscheme +69 -0
  31. package/lib/index.ts +1 -1
  32. package/lib/version.ts +1 -1
  33. package/package.json +5 -4
  34. package/plugin/build/ios/appDelegate.js +12 -13
  35. package/plugin/src/ios/appDelegate.ts +13 -14
@@ -0,0 +1,277 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 56;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ AC100000000000000000000B /* RNFBAppCheckRejectCodeMapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000009 /* RNFBAppCheckRejectCodeMapper.swift */; };
11
+ AC100000000000000000000C /* RNFBAppCheckRejectCodeMapperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC100000000000000000000D /* RNFBAppCheckRejectCodeMapperTests.swift */; };
12
+ AC1000000000000000000015 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000014 /* XCTest.framework */; };
13
+ AC1000000000000000000020 /* RNFBAppCheckHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000021 /* RNFBAppCheckHelper.m */; };
14
+ AC1000000000000000000022 /* RNFBAppCheckProviderFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000023 /* RNFBAppCheckProviderFactory.m */; };
15
+ AC1000000000000000000024 /* RNFBAppCheckHelperHostStubTests.m in Sources */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000025 /* RNFBAppCheckHelperHostStubTests.m */; };
16
+ AC1000000000000000000026 /* FIRAppCheckHostStub.m in Sources */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000027 /* FIRAppCheckHostStub.m */; };
17
+ AC1000000000000000000028 /* RNFBSharedUtilsHostStub.m in Sources */ = {isa = PBXBuildFile; fileRef = AC1000000000000000000029 /* RNFBSharedUtilsHostStub.m */; };
18
+ AC100000000000000000002A /* RCTConvert+FIRAppHostStub.m in Sources */ = {isa = PBXBuildFile; fileRef = AC100000000000000000002B /* RCTConvert+FIRAppHostStub.m */; };
19
+ AC100000000000000000002C /* RNFBAppCheckProviderHostStub.m in Sources */ = {isa = PBXBuildFile; fileRef = AC100000000000000000002D /* RNFBAppCheckProviderHostStub.m */; };
20
+ /* End PBXBuildFile section */
21
+
22
+ /* Begin PBXFileReference section */
23
+ AC1000000000000000000003 /* RNFBAppCheckUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNFBAppCheckUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
24
+ AC1000000000000000000009 /* RNFBAppCheckRejectCodeMapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RNFBAppCheckRejectCodeMapper.swift; path = ../RNFBAppCheck/RNFBAppCheckRejectCodeMapper.swift; sourceTree = SOURCE_ROOT; };
25
+ AC100000000000000000000D /* RNFBAppCheckRejectCodeMapperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RNFBAppCheckRejectCodeMapperTests.swift; sourceTree = "<group>"; };
26
+ AC1000000000000000000014 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
27
+ AC1000000000000000000021 /* RNFBAppCheckHelper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNFBAppCheckHelper.m; path = ../RNFBAppCheck/RNFBAppCheckHelper.m; sourceTree = SOURCE_ROOT; };
28
+ AC1000000000000000000023 /* RNFBAppCheckProviderFactory.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNFBAppCheckProviderFactory.m; path = ../RNFBAppCheck/RNFBAppCheckProviderFactory.m; sourceTree = SOURCE_ROOT; };
29
+ AC1000000000000000000025 /* RNFBAppCheckHelperHostStubTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBAppCheckHelperHostStubTests.m; sourceTree = "<group>"; };
30
+ AC1000000000000000000027 /* FIRAppCheckHostStub.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FIRAppCheckHostStub.m; path = HostStubs/Firebase/FIRAppCheckHostStub.m; sourceTree = "<group>"; };
31
+ AC1000000000000000000029 /* RNFBSharedUtilsHostStub.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNFBSharedUtilsHostStub.m; path = HostStubs/RNFBApp/RNFBSharedUtilsHostStub.m; sourceTree = "<group>"; };
32
+ AC100000000000000000002B /* RCTConvert+FIRAppHostStub.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "RCTConvert+FIRAppHostStub.m"; path = "HostStubs/RNFBApp/RCTConvert+FIRAppHostStub.m"; sourceTree = "<group>"; };
33
+ AC100000000000000000002D /* RNFBAppCheckProviderHostStub.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNFBAppCheckProviderHostStub.m; path = HostStubs/RNFBAppCheck/RNFBAppCheckProviderHostStub.m; sourceTree = "<group>"; };
34
+ AC100000000000000000002E /* RNFBAppCheckHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RNFBAppCheckHelper.h; path = ../RNFBAppCheck/RNFBAppCheckHelper.h; sourceTree = SOURCE_ROOT; };
35
+ /* End PBXFileReference section */
36
+
37
+ /* Begin PBXFrameworksBuildPhase section */
38
+ AC1000000000000000000012 /* Frameworks */ = {
39
+ isa = PBXFrameworksBuildPhase;
40
+ buildActionMask = 2147483647;
41
+ files = (
42
+ AC1000000000000000000015 /* XCTest.framework in Frameworks */,
43
+ );
44
+ runOnlyForDeploymentPostprocessing = 0;
45
+ };
46
+ /* End PBXFrameworksBuildPhase section */
47
+
48
+ /* Begin PBXGroup section */
49
+ AC1000000000000000000004 = {
50
+ isa = PBXGroup;
51
+ children = (
52
+ AC1000000000000000000006 /* Sources */,
53
+ AC1000000000000000000005 /* Products */,
54
+ );
55
+ sourceTree = "<group>";
56
+ };
57
+ AC1000000000000000000005 /* Products */ = {
58
+ isa = PBXGroup;
59
+ children = (
60
+ AC1000000000000000000003 /* RNFBAppCheckUnitTests.xctest */,
61
+ );
62
+ name = Products;
63
+ sourceTree = "<group>";
64
+ };
65
+ AC1000000000000000000006 /* Sources */ = {
66
+ isa = PBXGroup;
67
+ children = (
68
+ AC1000000000000000000009 /* RNFBAppCheckRejectCodeMapper.swift */,
69
+ AC100000000000000000000D /* RNFBAppCheckRejectCodeMapperTests.swift */,
70
+ AC100000000000000000002E /* RNFBAppCheckHelper.h */,
71
+ AC1000000000000000000021 /* RNFBAppCheckHelper.m */,
72
+ AC1000000000000000000023 /* RNFBAppCheckProviderFactory.m */,
73
+ AC1000000000000000000025 /* RNFBAppCheckHelperHostStubTests.m */,
74
+ AC1000000000000000000027 /* FIRAppCheckHostStub.m */,
75
+ AC1000000000000000000029 /* RNFBSharedUtilsHostStub.m */,
76
+ AC100000000000000000002B /* RCTConvert+FIRAppHostStub.m */,
77
+ AC100000000000000000002D /* RNFBAppCheckProviderHostStub.m */,
78
+ );
79
+ name = Sources;
80
+ sourceTree = "<group>";
81
+ };
82
+ /* End PBXGroup section */
83
+
84
+ /* Begin PBXNativeTarget section */
85
+ AC1000000000000000000002 /* RNFBAppCheckUnitTests */ = {
86
+ isa = PBXNativeTarget;
87
+ buildConfigurationList = AC1000000000000000000013 /* Build configuration list for PBXNativeTarget "RNFBAppCheckUnitTests" */;
88
+ buildPhases = (
89
+ AC1000000000000000000016 /* Sources */,
90
+ AC1000000000000000000012 /* Frameworks */,
91
+ );
92
+ buildRules = (
93
+ );
94
+ dependencies = (
95
+ );
96
+ name = RNFBAppCheckUnitTests;
97
+ productName = RNFBAppCheckUnitTests;
98
+ productReference = AC1000000000000000000003 /* RNFBAppCheckUnitTests.xctest */;
99
+ productType = "com.apple.product-type.bundle.unit-test";
100
+ };
101
+ /* End PBXNativeTarget section */
102
+
103
+ /* Begin PBXProject section */
104
+ AC1000000000000000000001 /* Project object */ = {
105
+ isa = PBXProject;
106
+ attributes = {
107
+ BuildIndependentTargetsInParallel = 1;
108
+ LastUpgradeCheck = 2600;
109
+ ORGANIZATIONNAME = Invertase;
110
+ TargetAttributes = {
111
+ AC1000000000000000000002 = {
112
+ CreatedOnToolsVersion = 26.0;
113
+ };
114
+ };
115
+ };
116
+ buildConfigurationList = AC1000000000000000000017 /* Build configuration list for PBXProject "RNFBAppCheckUnitTests" */;
117
+ compatibilityVersion = "Xcode 14.0";
118
+ developmentRegion = en;
119
+ hasScannedForEncodings = 0;
120
+ knownRegions = (
121
+ en,
122
+ Base,
123
+ );
124
+ mainGroup = AC1000000000000000000004;
125
+ productRefGroup = AC1000000000000000000005 /* Products */;
126
+ projectDirPath = "";
127
+ projectRoot = "";
128
+ targets = (
129
+ AC1000000000000000000002 /* RNFBAppCheckUnitTests */,
130
+ );
131
+ };
132
+ /* End PBXProject section */
133
+
134
+ /* Begin PBXSourcesBuildPhase section */
135
+ AC1000000000000000000016 /* Sources */ = {
136
+ isa = PBXSourcesBuildPhase;
137
+ buildActionMask = 2147483647;
138
+ files = (
139
+ AC100000000000000000000B /* RNFBAppCheckRejectCodeMapper.swift in Sources */,
140
+ AC100000000000000000000C /* RNFBAppCheckRejectCodeMapperTests.swift in Sources */,
141
+ AC1000000000000000000020 /* RNFBAppCheckHelper.m in Sources */,
142
+ AC1000000000000000000022 /* RNFBAppCheckProviderFactory.m in Sources */,
143
+ AC100000000000000000002C /* RNFBAppCheckProviderHostStub.m in Sources */,
144
+ AC1000000000000000000026 /* FIRAppCheckHostStub.m in Sources */,
145
+ AC1000000000000000000028 /* RNFBSharedUtilsHostStub.m in Sources */,
146
+ AC100000000000000000002A /* RCTConvert+FIRAppHostStub.m in Sources */,
147
+ AC1000000000000000000024 /* RNFBAppCheckHelperHostStubTests.m in Sources */,
148
+ );
149
+ runOnlyForDeploymentPostprocessing = 0;
150
+ };
151
+ /* End PBXSourcesBuildPhase section */
152
+
153
+ /* Begin XCBuildConfiguration section */
154
+ AC1000000000000000000018 /* Debug */ = {
155
+ isa = XCBuildConfiguration;
156
+ buildSettings = {
157
+ ALWAYS_SEARCH_USER_PATHS = NO;
158
+ CLANG_ENABLE_MODULES = YES;
159
+ CLANG_ENABLE_OBJC_ARC = YES;
160
+ COPY_PHASE_STRIP = NO;
161
+ DEBUG_INFORMATION_FORMAT = dwarf;
162
+ ENABLE_TESTABILITY = YES;
163
+ GCC_C_LANGUAGE_STANDARD = gnu17;
164
+ GCC_DYNAMIC_NO_PIC = NO;
165
+ GCC_OPTIMIZATION_LEVEL = 0;
166
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
167
+ ONLY_ACTIVE_ARCH = YES;
168
+ SDKROOT = macosx;
169
+ SUPPORTED_PLATFORMS = macosx;
170
+ };
171
+ name = Debug;
172
+ };
173
+ AC1000000000000000000019 /* Release */ = {
174
+ isa = XCBuildConfiguration;
175
+ buildSettings = {
176
+ ALWAYS_SEARCH_USER_PATHS = NO;
177
+ CLANG_ENABLE_MODULES = YES;
178
+ CLANG_ENABLE_OBJC_ARC = YES;
179
+ COPY_PHASE_STRIP = YES;
180
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
181
+ GCC_C_LANGUAGE_STANDARD = gnu17;
182
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
183
+ SDKROOT = macosx;
184
+ SUPPORTED_PLATFORMS = macosx;
185
+ };
186
+ name = Release;
187
+ };
188
+ AC100000000000000000001A /* Debug */ = {
189
+ isa = XCBuildConfiguration;
190
+ buildSettings = {
191
+ CLANG_ENABLE_CODE_COVERAGE = YES;
192
+ CODE_SIGNING_ALLOWED = NO;
193
+ CODE_SIGNING_REQUIRED = NO;
194
+ CODE_SIGN_IDENTITY = "-";
195
+ COMBINE_HIDPI_IMAGES = YES;
196
+ DEFINES_MODULE = YES;
197
+ GENERATE_INFOPLIST_FILE = YES;
198
+ HEADER_SEARCH_PATHS = (
199
+ "$(SRCROOT)/HostStubs",
200
+ "$(SRCROOT)/../RNFBAppCheck",
201
+ );
202
+ LD_RUNPATH_SEARCH_PATHS = (
203
+ "$(inherited)",
204
+ "@executable_path/../Frameworks",
205
+ "@loader_path/../Frameworks",
206
+ );
207
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
208
+ OTHER_CFLAGS = (
209
+ "-fprofile-instr-generate",
210
+ "-fcoverage-mapping",
211
+ );
212
+ OTHER_LDFLAGS = (
213
+ "-fprofile-instr-generate",
214
+ );
215
+ PRODUCT_BUNDLE_IDENTIFIER = io.invertase.firebase.RNFBAppCheckUnitTests;
216
+ PRODUCT_NAME = "$(TARGET_NAME)";
217
+ SDKROOT = macosx;
218
+ SUPPORTED_PLATFORMS = macosx;
219
+ SWIFT_OBJC_INTERFACE_HEADER_NAME = "RNFBAppCheckRejectCodeMapper-Swift.inc";
220
+ SWIFT_VERSION = 5.10;
221
+ };
222
+ name = Debug;
223
+ };
224
+ AC100000000000000000001B /* Release */ = {
225
+ isa = XCBuildConfiguration;
226
+ buildSettings = {
227
+ CLANG_ENABLE_CODE_COVERAGE = YES;
228
+ CODE_SIGNING_ALLOWED = NO;
229
+ CODE_SIGNING_REQUIRED = NO;
230
+ CODE_SIGN_IDENTITY = "-";
231
+ COMBINE_HIDPI_IMAGES = YES;
232
+ DEFINES_MODULE = YES;
233
+ GENERATE_INFOPLIST_FILE = YES;
234
+ HEADER_SEARCH_PATHS = (
235
+ "$(SRCROOT)/HostStubs",
236
+ "$(SRCROOT)/../RNFBAppCheck",
237
+ );
238
+ LD_RUNPATH_SEARCH_PATHS = (
239
+ "$(inherited)",
240
+ "@executable_path/../Frameworks",
241
+ "@loader_path/../Frameworks",
242
+ );
243
+ MACOSX_DEPLOYMENT_TARGET = 14.0;
244
+ PRODUCT_BUNDLE_IDENTIFIER = io.invertase.firebase.RNFBAppCheckUnitTests;
245
+ PRODUCT_NAME = "$(TARGET_NAME)";
246
+ SDKROOT = macosx;
247
+ SUPPORTED_PLATFORMS = macosx;
248
+ SWIFT_OBJC_INTERFACE_HEADER_NAME = "RNFBAppCheckRejectCodeMapper-Swift.inc";
249
+ SWIFT_VERSION = 5.10;
250
+ };
251
+ name = Release;
252
+ };
253
+ /* End XCBuildConfiguration section */
254
+
255
+ /* Begin XCConfigurationList section */
256
+ AC1000000000000000000017 /* Build configuration list for PBXProject "RNFBAppCheckUnitTests" */ = {
257
+ isa = XCConfigurationList;
258
+ buildConfigurations = (
259
+ AC1000000000000000000018 /* Debug */,
260
+ AC1000000000000000000019 /* Release */,
261
+ );
262
+ defaultConfigurationIsVisible = 0;
263
+ defaultConfigurationName = Debug;
264
+ };
265
+ AC1000000000000000000013 /* Build configuration list for PBXNativeTarget "RNFBAppCheckUnitTests" */ = {
266
+ isa = XCConfigurationList;
267
+ buildConfigurations = (
268
+ AC100000000000000000001A /* Debug */,
269
+ AC100000000000000000001B /* Release */,
270
+ );
271
+ defaultConfigurationIsVisible = 0;
272
+ defaultConfigurationName = Debug;
273
+ };
274
+ /* End XCConfigurationList section */
275
+ };
276
+ rootObject = AC1000000000000000000001 /* Project object */;
277
+ }
@@ -0,0 +1,69 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ LastUpgradeVersion = "2600"
4
+ version = "1.7">
5
+ <BuildAction
6
+ parallelizeBuildables = "YES"
7
+ buildImplicitDependencies = "YES">
8
+ <BuildActionEntries>
9
+ <BuildActionEntry
10
+ buildForTesting = "YES"
11
+ buildForRunning = "YES"
12
+ buildForProfiling = "NO"
13
+ buildForArchiving = "NO"
14
+ buildForAnalyzing = "YES">
15
+ <BuildableReference
16
+ BuildableIdentifier = "primary"
17
+ BlueprintIdentifier = "AC1000000000000000000002"
18
+ BuildableName = "RNFBAppCheckUnitTests.xctest"
19
+ BlueprintName = "RNFBAppCheckUnitTests"
20
+ ReferencedContainer = "container:RNFBAppCheckUnitTests.xcodeproj">
21
+ </BuildableReference>
22
+ </BuildActionEntry>
23
+ </BuildActionEntries>
24
+ </BuildAction>
25
+ <TestAction
26
+ buildConfiguration = "Debug"
27
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
+ shouldUseLaunchSchemeArgsEnv = "YES"
30
+ codeCoverageEnabled = "YES">
31
+ <Testables>
32
+ <TestableReference
33
+ skipped = "NO">
34
+ <BuildableReference
35
+ BuildableIdentifier = "primary"
36
+ BlueprintIdentifier = "AC1000000000000000000002"
37
+ BuildableName = "RNFBAppCheckUnitTests.xctest"
38
+ BlueprintName = "RNFBAppCheckUnitTests"
39
+ ReferencedContainer = "container:RNFBAppCheckUnitTests.xcodeproj">
40
+ </BuildableReference>
41
+ </TestableReference>
42
+ </Testables>
43
+ </TestAction>
44
+ <LaunchAction
45
+ buildConfiguration = "Debug"
46
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
47
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
48
+ launchStyle = "0"
49
+ useCustomWorkingDirectory = "NO"
50
+ ignoresPersistentStateOnLaunch = "NO"
51
+ debugDocumentVersioning = "YES"
52
+ debugServiceExtension = "internal"
53
+ allowLocationSimulation = "YES">
54
+ </LaunchAction>
55
+ <ProfileAction
56
+ buildConfiguration = "Release"
57
+ shouldUseLaunchSchemeArgsEnv = "YES"
58
+ savedToolIdentifier = ""
59
+ useCustomWorkingDirectory = "NO"
60
+ debugDocumentVersioning = "YES">
61
+ </ProfileAction>
62
+ <AnalyzeAction
63
+ buildConfiguration = "Debug">
64
+ </AnalyzeAction>
65
+ <ArchiveAction
66
+ buildConfiguration = "Release"
67
+ revealArchiveInOrganizer = "YES">
68
+ </ArchiveAction>
69
+ </Scheme>
package/lib/index.ts CHANGED
@@ -28,11 +28,11 @@ import type { FirebaseApp } from '@react-native-firebase/app';
28
28
  import {
29
29
  FirebaseModule,
30
30
  getOrCreateModularInstance,
31
+ setReactNativeModule,
31
32
  } from '@react-native-firebase/app/dist/module/internal';
32
33
  import type { ModuleConfig } from '@react-native-firebase/app/dist/module/internal';
33
34
  import './types/internal';
34
35
  import { Platform } from 'react-native';
35
- import { setReactNativeModule } from '@react-native-firebase/app/dist/module/internal/nativeModule';
36
36
  import fallBackModule from './web/RNFBAppCheckModule';
37
37
  import { version } from './version';
38
38
  import type {
package/lib/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '26.3.3';
2
+ export const version = '27.0.0';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-firebase/app-check",
3
- "version": "26.3.3",
3
+ "version": "27.0.0",
4
4
  "author": "Invertase <oss@invertase.io> (http://invertase.io)",
5
5
  "description": "React Native Firebase - App Check",
6
6
  "main": "./dist/module/index.js",
@@ -30,6 +30,7 @@
30
30
  "android:codegen": "node ../../scripts/codegen-package.mjs app-check android",
31
31
  "ios:codegen": "node ../../scripts/codegen-package.mjs app-check ios"
32
32
  },
33
+ "homepage": "https://rnfirebase.io",
33
34
  "repository": {
34
35
  "type": "git",
35
36
  "url": "https://github.com/invertase/react-native-firebase",
@@ -44,11 +45,11 @@
44
45
  "appCheck"
45
46
  ],
46
47
  "peerDependencies": {
47
- "@react-native-firebase/app": "26.3.3",
48
+ "@react-native-firebase/app": "27.0.0",
48
49
  "expo": ">=47.0.0"
49
50
  },
50
51
  "devDependencies": {
51
- "@react-native-firebase/app": "26.3.3",
52
+ "@react-native-firebase/app": "27.0.0",
52
53
  "expo": "^55.0.18",
53
54
  "react-native-builder-bob": "^0.41.0",
54
55
  "typescript": "^6.0.3"
@@ -100,5 +101,5 @@
100
101
  "node_modules/",
101
102
  "dist/"
102
103
  ],
103
- "gitHead": "04b90008385bf69be74f3a333d0dfea43ba32e64"
104
+ "gitHead": "0c7e942bca361f1765abaf233bf447d795718eff"
104
105
  }
@@ -112,21 +112,20 @@ function modifySwiftAppDelegate(contents) {
112
112
  if (contents.includes('RNFBAppCheckModule.sharedInstance()')) {
113
113
  return contents;
114
114
  }
115
- // Find the Firebase initialization end line to insert after
116
- const firebaseLine = '// @generated end @react-native-firebase/app-didFinishLaunchingWithOptions';
117
- if (contents.includes(firebaseLine)) {
118
- // Insert right after Firebase initialization
119
- return contents.replace(firebaseLine, `${firebaseLine}
120
- RNFBAppCheckModule.sharedInstance()
121
- FirebaseApp.configure()
122
- `);
123
- }
124
- // If Firebase initialization block not found, register the App Check provider factory
125
- // then call FirebaseApp.configure(). Firebase requires the factory before configure
126
- // (AppCheck-AD-3); do not reverse this order.
115
+ // App plugin (or an earlier pass) already calls configure. The provider factory must
116
+ // run before that call. Do not append a second FirebaseApp.configure().
117
+ const existingConfigure = /^([ \t]*)FirebaseApp\.configure\(\)/m.exec(contents);
118
+ if (existingConfigure) {
119
+ const indent = existingConfigure[1];
120
+ return contents.replace(existingConfigure[0], `${indent}RNFBAppCheckModule.sharedInstance()\n${existingConfigure[0]}`);
121
+ }
122
+ // No configure yet. Register the factory, then configure. Firebase requires the
123
+ // factory before configure (AppCheck-AD-3). Expo 58 scene AppDelegates start
124
+ // React Native from SceneDelegate, so the anchor is the didFinishLaunching return
125
+ // rather than factory.startReactNative.
127
126
  const methodInvocationBlock = `RNFBAppCheckModule.sharedInstance()
128
127
  FirebaseApp.configure()`;
129
- const methodInvocationLineMatcher = /(?:factory\.startReactNative\()/;
128
+ const methodInvocationLineMatcher = /(?:factory\.startReactNative\()|(?:return\s+super\.application\(\s*application\s*,\s*didFinishLaunchingWithOptions:\s*launchOptions\s*\))/;
130
129
  if (!methodInvocationLineMatcher.test(contents)) {
131
130
  config_plugins_1.WarningAggregator.addWarningIOS('@react-native-firebase/app-check', 'Unable to determine correct insertion point in AppDelegate.swift. Skipping App Check addition.');
132
131
  return contents;
@@ -127,27 +127,26 @@ export function modifySwiftAppDelegate(contents: string): string {
127
127
  return contents;
128
128
  }
129
129
 
130
- // Find the Firebase initialization end line to insert after
131
- const firebaseLine = '// @generated end @react-native-firebase/app-didFinishLaunchingWithOptions';
132
-
133
- if (contents.includes(firebaseLine)) {
134
- // Insert right after Firebase initialization
130
+ // App plugin (or an earlier pass) already calls configure. The provider factory must
131
+ // run before that call. Do not append a second FirebaseApp.configure().
132
+ const existingConfigure = /^([ \t]*)FirebaseApp\.configure\(\)/m.exec(contents);
133
+ if (existingConfigure) {
134
+ const indent = existingConfigure[1];
135
135
  return contents.replace(
136
- firebaseLine,
137
- `${firebaseLine}
138
- RNFBAppCheckModule.sharedInstance()
139
- FirebaseApp.configure()
140
- `,
136
+ existingConfigure[0],
137
+ `${indent}RNFBAppCheckModule.sharedInstance()\n${existingConfigure[0]}`,
141
138
  );
142
139
  }
143
140
 
144
- // If Firebase initialization block not found, register the App Check provider factory
145
- // then call FirebaseApp.configure(). Firebase requires the factory before configure
146
- // (AppCheck-AD-3); do not reverse this order.
141
+ // No configure yet. Register the factory, then configure. Firebase requires the
142
+ // factory before configure (AppCheck-AD-3). Expo 58 scene AppDelegates start
143
+ // React Native from SceneDelegate, so the anchor is the didFinishLaunching return
144
+ // rather than factory.startReactNative.
147
145
  const methodInvocationBlock = `RNFBAppCheckModule.sharedInstance()
148
146
  FirebaseApp.configure()`;
149
147
 
150
- const methodInvocationLineMatcher = /(?:factory\.startReactNative\()/;
148
+ const methodInvocationLineMatcher =
149
+ /(?:factory\.startReactNative\()|(?:return\s+super\.application\(\s*application\s*,\s*didFinishLaunchingWithOptions:\s*launchOptions\s*\))/;
151
150
 
152
151
  if (!methodInvocationLineMatcher.test(contents)) {
153
152
  WarningAggregator.addWarningIOS(