@react-native-firebase/app 26.3.3 → 26.4.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 +27 -0
- package/RNFBApp.podspec +1 -1
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleCollisionException.java +31 -0
- package/android/src/main/java/io/invertase/firebase/common/RNFBHandleMap.java +150 -0
- package/android/src/main/java/io/invertase/firebase/common/TaskExecutorService.java +27 -3
- package/android/src/reactnative/java/io/invertase/firebase/app/NativeRNFBTurboApp.java +3 -1
- package/android/src/reactnative/java/io/invertase/firebase/app/ReactNativeFirebaseVersion.java +1 -1
- package/android/src/reactnative/java/io/invertase/firebase/common/RCTConvertFirebase.java +3 -2
- package/android/src/reactnative/java/io/invertase/firebase/common/ReactNativeFirebaseJSON.java +5 -3
- package/android/src/test/java/io/invertase/firebase/app/NativeRNFBTurboAppTest.java +26 -1
- package/android/src/test/java/io/invertase/firebase/common/RNFBHandleMapTest.java +275 -0
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseEventEmitterTest.java +1 -1
- package/android/src/test/java/io/invertase/firebase/common/ReactNativeFirebaseJSONTest.java +108 -0
- package/android/src/test/java/io/invertase/firebase/common/TaskExecutorServiceTest.java +97 -0
- package/android/src/test/java/io/invertase/firebase/utils/NativeRNFBTurboUtilsTest.java +0 -2
- package/dist/module/common/Base64.js +13 -21
- package/dist/module/common/Base64.js.map +1 -1
- package/dist/module/common/index.js +17 -9
- package/dist/module/common/index.js.map +1 -1
- package/dist/module/internal/asyncStorage.js +7 -11
- package/dist/module/internal/asyncStorage.js.map +1 -1
- package/dist/module/internal/logger.js +44 -40
- package/dist/module/internal/logger.js.map +1 -1
- package/dist/module/internal/nativeModuleAndroidIos.js +2 -29
- package/dist/module/internal/nativeModuleAndroidIos.js.map +1 -1
- package/dist/module/internal/nativeModuleDebug.js +74 -0
- package/dist/module/internal/nativeModuleDebug.js.map +1 -0
- package/dist/module/internal/nativeModuleWeb.js +9 -29
- package/dist/module/internal/nativeModuleWeb.js.map +1 -1
- package/dist/module/internal/registry/app.js +1 -1
- package/dist/module/internal/registry/app.js.map +1 -1
- package/dist/module/internal/registry/modular.js +2 -2
- package/dist/module/internal/registry/modular.js.map +1 -1
- package/dist/module/internal/registry/nativeModule.js +3 -3
- package/dist/module/internal/registry/nativeModule.js.map +1 -1
- package/dist/module/internal/web/RNFBAppModule.js +16 -15
- package/dist/module/internal/web/RNFBAppModule.js.map +1 -1
- package/dist/module/internal/web/memidb/lib/FakeEventTarget.js +3 -1
- package/dist/module/internal/web/memidb/lib/FakeEventTarget.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/lib/common/Base64.d.ts.map +1 -1
- package/dist/typescript/lib/common/index.d.ts.map +1 -1
- package/dist/typescript/lib/internal/asyncStorage.d.ts.map +1 -1
- package/dist/typescript/lib/internal/logger.d.ts.map +1 -1
- package/dist/typescript/lib/internal/nativeModuleAndroidIos.d.ts.map +1 -1
- package/dist/typescript/lib/internal/nativeModuleDebug.d.ts +2 -0
- package/dist/typescript/lib/internal/nativeModuleDebug.d.ts.map +1 -0
- package/dist/typescript/lib/internal/nativeModuleWeb.d.ts.map +1 -1
- package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts +7 -7
- package/dist/typescript/lib/internal/web/RNFBAppModule.d.ts.map +1 -1
- package/dist/typescript/lib/version.d.ts +1 -1
- package/firebase-schema.json +1 -1
- package/ios/RNFBApp/RNFBAppModule.mm +40 -14
- package/ios/RNFBApp/RNFBHandleMap.h +73 -0
- package/ios/RNFBApp/RNFBHandleMap.m +116 -0
- package/ios/RNFBApp/RNFBSharedUtils.m +3 -2
- package/ios/RNFBApp/RNFBVersion.m +1 -1
- package/ios/RNFBApp.xcodeproj/project.pbxproj +6 -0
- package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/project.pbxproj +237 -0
- package/ios/RNFBAppUnitTests/RNFBAppUnitTests.xcodeproj/xcshareddata/xcschemes/RNFBAppUnitTests.xcscheme +69 -0
- package/ios/RNFBAppUnitTests/RNFBHandleMapTests.m +238 -0
- package/lib/common/Base64.ts +10 -16
- package/lib/common/index.ts +20 -9
- package/lib/internal/asyncStorage.ts +7 -11
- package/lib/internal/logger.ts +53 -43
- package/lib/internal/nativeModuleAndroidIos.ts +2 -40
- package/lib/internal/nativeModuleDebug.ts +97 -0
- package/lib/internal/nativeModuleWeb.ts +10 -40
- package/lib/internal/registry/app.ts +1 -1
- package/lib/internal/registry/modular.ts +2 -2
- package/lib/internal/registry/nativeModule.ts +3 -3
- package/lib/internal/web/RNFBAppModule.ts +16 -15
- package/lib/internal/web/memidb/lib/FakeEventTarget.js +3 -1
- package/lib/version.ts +1 -1
- package/package.json +3 -2
- package/plugin/build/ios/appDelegate.js +18 -8
- package/plugin/src/ios/appDelegate.ts +44 -14
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "26.
|
|
1
|
+
export declare const version = "26.4.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/firebase-schema.json
CHANGED
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
"type": "array"
|
|
121
121
|
},
|
|
122
122
|
"messaging_max_stored_notifications": {
|
|
123
|
-
"description": "Controls how many notifications are retained on-device for background storage. Configuration priority order is SharedPreferences -> firebase.json -> AndroidManifest. Default 100. Very small values may cause unwanted excessive deletions, large values or large message contents run the risk of OutOfMemoryErrors.",
|
|
123
|
+
"description": "Controls how many notifications are retained on-device for background storage. Values less than or equal to zero disable storage and clear previously retained notifications. Configuration priority order is SharedPreferences -> firebase.json -> AndroidManifest. Default 100. Very small positive values may cause unwanted excessive deletions, large values or large message contents run the risk of OutOfMemoryErrors.",
|
|
124
124
|
"type": "number"
|
|
125
125
|
},
|
|
126
126
|
"perf_auto_collection_enabled": {
|
|
@@ -41,8 +41,13 @@
|
|
|
41
41
|
#endif
|
|
42
42
|
|
|
43
43
|
@interface RNFBAppModule () <NativeRNFBTurboAppSpec, RCTInvalidating>
|
|
44
|
+
|
|
45
|
+
+ (void)setCustomDomain:(nullable NSString *)authDomain forAppName:(NSString *)appName;
|
|
46
|
+
|
|
44
47
|
@end
|
|
45
48
|
|
|
49
|
+
static NSMutableDictionary<NSString *, NSString *> *customAuthDomains;
|
|
50
|
+
|
|
46
51
|
@implementation RNFBAppModule
|
|
47
52
|
|
|
48
53
|
#pragma mark -
|
|
@@ -200,6 +205,9 @@ RCT_EXPORT_MODULE(NativeRNFBTurboApp)
|
|
|
200
205
|
RCTUnsafeExecuteOnMainQueueSync(^{
|
|
201
206
|
FIRApp *firApp;
|
|
202
207
|
NSString *appName = [appConfig valueForKey:@"name"];
|
|
208
|
+
NSString *authDomain = [options valueForKey:@"authDomain"];
|
|
209
|
+
NSString *jsAppName = (appName.length > 0) ? appName : DEFAULT_APP_DISPLAY_NAME;
|
|
210
|
+
BOOL isDefaultApp = !appName || [appName isEqualToString:DEFAULT_APP_DISPLAY_NAME];
|
|
203
211
|
|
|
204
212
|
NSString *appId = [options valueForKey:@"appId"];
|
|
205
213
|
NSString *messagingSenderId = [options valueForKey:@"messagingSenderId"];
|
|
@@ -223,17 +231,16 @@ RCT_EXPORT_MODULE(NativeRNFBTurboApp)
|
|
|
223
231
|
firOptions.appGroupID = [options valueForKey:@"appGroupId"];
|
|
224
232
|
}
|
|
225
233
|
|
|
226
|
-
if ([options valueForKey:@"authDomain"] != nil) {
|
|
227
|
-
DLog(@"RNFBAuth app: %@ customAuthDomain: %@", appName, [options valueForKey:@"authDomain"]);
|
|
228
|
-
if (customAuthDomains == nil) {
|
|
229
|
-
customAuthDomains = [[NSMutableDictionary alloc] init];
|
|
230
|
-
}
|
|
231
|
-
customAuthDomains[appName] = [options valueForKey:@"authDomain"];
|
|
232
|
-
}
|
|
233
234
|
@try {
|
|
234
|
-
if (
|
|
235
|
-
[FIRApp
|
|
236
|
-
|
|
235
|
+
if (isDefaultApp) {
|
|
236
|
+
// Native bootstrap often already called [FIRApp configure]. Still accept a JS/bridge
|
|
237
|
+
// initializeApp for the default app so customAuthDomains can be keyed by [DEFAULT].
|
|
238
|
+
if ([FIRApp defaultApp] != nil) {
|
|
239
|
+
firApp = [FIRApp defaultApp];
|
|
240
|
+
} else {
|
|
241
|
+
[FIRApp configureWithOptions:firOptions];
|
|
242
|
+
firApp = [FIRApp defaultApp];
|
|
243
|
+
}
|
|
237
244
|
} else {
|
|
238
245
|
[FIRApp configureWithName:appName options:firOptions];
|
|
239
246
|
firApp = [FIRApp appNamed:appName];
|
|
@@ -242,6 +249,9 @@ RCT_EXPORT_MODULE(NativeRNFBTurboApp)
|
|
|
242
249
|
return [RNFBSharedUtils rejectPromiseWithExceptionDict:reject exception:exception];
|
|
243
250
|
}
|
|
244
251
|
|
|
252
|
+
// Store under the JS bridge app name ([DEFAULT]), never native __FIRAPP_DEFAULT.
|
|
253
|
+
[RNFBAppModule setCustomDomain:authDomain forAppName:jsAppName];
|
|
254
|
+
|
|
245
255
|
firApp.dataCollectionDefaultEnabled =
|
|
246
256
|
(BOOL)[appConfig valueForKey:@"automaticDataCollectionEnabled"];
|
|
247
257
|
|
|
@@ -249,11 +259,25 @@ RCT_EXPORT_MODULE(NativeRNFBTurboApp)
|
|
|
249
259
|
});
|
|
250
260
|
}
|
|
251
261
|
|
|
252
|
-
static NSMutableDictionary<NSString *, NSString *> *customAuthDomains;
|
|
253
|
-
|
|
254
262
|
+ (NSString *)getCustomDomain:(NSString *)appName {
|
|
255
|
-
|
|
256
|
-
|
|
263
|
+
@synchronized(self) {
|
|
264
|
+
DLog(@"authDomains: %@", customAuthDomains);
|
|
265
|
+
return customAuthDomains[appName];
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
+ (void)setCustomDomain:(nullable NSString *)authDomain forAppName:(NSString *)appName {
|
|
270
|
+
@synchronized(self) {
|
|
271
|
+
if (authDomain != nil) {
|
|
272
|
+
DLog(@"RNFBAuth app: %@ customAuthDomain: %@", appName, authDomain);
|
|
273
|
+
if (customAuthDomains == nil) {
|
|
274
|
+
customAuthDomains = [[NSMutableDictionary alloc] init];
|
|
275
|
+
}
|
|
276
|
+
customAuthDomains[appName] = authDomain;
|
|
277
|
+
} else {
|
|
278
|
+
[customAuthDomains removeObjectForKey:appName];
|
|
279
|
+
}
|
|
280
|
+
}
|
|
257
281
|
}
|
|
258
282
|
|
|
259
283
|
- (void)setLogLevel:(NSString *)logLevel {
|
|
@@ -288,10 +312,12 @@ static NSMutableDictionary<NSString *, NSString *> *customAuthDomains;
|
|
|
288
312
|
|
|
289
313
|
[firApp deleteApp:^(BOOL success) {
|
|
290
314
|
if (success) {
|
|
315
|
+
[RNFBAppModule setCustomDomain:nil forAppName:appName];
|
|
291
316
|
resolve([NSNull null]);
|
|
292
317
|
} else {
|
|
293
318
|
[firApp deleteApp:^(BOOL success2) {
|
|
294
319
|
if (success2) {
|
|
320
|
+
[RNFBAppModule setCustomDomain:nil forAppName:appName];
|
|
295
321
|
resolve([NSNull null]);
|
|
296
322
|
} else {
|
|
297
323
|
reject(@"app/delete-app-failed", @"Failed to delete the specified app.", nil);
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#import <Foundation/Foundation.h>
|
|
19
|
+
|
|
20
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
21
|
+
|
|
22
|
+
FOUNDATION_EXPORT NSErrorDomain const RNFBHandleMapErrorDomain;
|
|
23
|
+
|
|
24
|
+
typedef NS_ERROR_ENUM(RNFBHandleMapErrorDomain, RNFBHandleMapErrorCode){
|
|
25
|
+
RNFBHandleMapErrorCollision = 1,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Thread-safe id → handle registry. The lock only moves pointers; this class never invokes methods
|
|
30
|
+
* on stored values (no SDK cancel/remove). Callers `take` or `takeAll`, then act on the returned
|
|
31
|
+
* object(s) outside the lock. Keys are typically NSNumber or NSString.
|
|
32
|
+
*
|
|
33
|
+
* `put` is unique: an occupied id fails with `RNFBHandleMapErrorCollision`. There is no upsert.
|
|
34
|
+
* Use `putIfAbsent` (first wins), `putIfAbsentOrSame` (first wins or same instance), or
|
|
35
|
+
* `putReplacing` (last wins) for atomic upsert.
|
|
36
|
+
*
|
|
37
|
+
* Do not lock on a `RNFBHandleMap` instance. This type uses a private lock object; callers that
|
|
38
|
+
* synchronize on the map can deadlock. Never `@synchronized(handleMap)` around these methods.
|
|
39
|
+
*/
|
|
40
|
+
@interface RNFBHandleMap : NSObject
|
|
41
|
+
|
|
42
|
+
/// Registers `value` under `key`. Returns NO and sets `error` if `key` is already occupied.
|
|
43
|
+
- (BOOL)put:(id)key value:(id)value error:(NSError *_Nullable *_Nullable)error;
|
|
44
|
+
|
|
45
|
+
/// Stores `value` under `key` only when the key is free (first wins). Returns NO if occupied.
|
|
46
|
+
- (BOOL)putIfAbsent:(id)key value:(id)value;
|
|
47
|
+
|
|
48
|
+
/// Under one lock: stores when free, or YES when existing is the same instance (`==`). NO if
|
|
49
|
+
/// occupied by a different value.
|
|
50
|
+
- (BOOL)putIfAbsentOrSame:(id)key value:(id)value;
|
|
51
|
+
|
|
52
|
+
/// Atomically replaces the mapping for `key` (last wins). Returns the previous value, or nil.
|
|
53
|
+
- (nullable id)putReplacing:(id)key value:(id)value;
|
|
54
|
+
|
|
55
|
+
/// Peeks at the handle for `key` without removing it (for emit while still registered).
|
|
56
|
+
- (nullable id)get:(id)key;
|
|
57
|
+
|
|
58
|
+
/// Removes and returns the handle for `key`, or nil if absent.
|
|
59
|
+
- (nullable id)take:(id)key;
|
|
60
|
+
|
|
61
|
+
/// When `key` is mapped and `condition` returns YES for the handle, removes and returns it;
|
|
62
|
+
/// otherwise returns nil and leaves the map unchanged. Lookup, condition, and removal run under one
|
|
63
|
+
/// lock — use for check-and-take that must not race with concurrent `put` / `take` on the same key.
|
|
64
|
+
/// Keep `condition` lightweight (no SDK cancel/remove).
|
|
65
|
+
- (nullable id)takeIf:(id)key when:(BOOL (^)(id value))condition;
|
|
66
|
+
|
|
67
|
+
/// Snapshot of current values, then clear. Cancel/remove each returned object after this method
|
|
68
|
+
/// returns, not under this map's lock.
|
|
69
|
+
- (NSArray *)takeAll;
|
|
70
|
+
|
|
71
|
+
@end
|
|
72
|
+
|
|
73
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#import "RNFBHandleMap.h"
|
|
19
|
+
|
|
20
|
+
NSErrorDomain const RNFBHandleMapErrorDomain = @"io.invertase.firebase.RNFBHandleMap";
|
|
21
|
+
|
|
22
|
+
@interface RNFBHandleMap ()
|
|
23
|
+
@property(nonatomic, strong) NSMutableDictionary *map;
|
|
24
|
+
@property(nonatomic, strong) NSObject *lock;
|
|
25
|
+
@end
|
|
26
|
+
|
|
27
|
+
@implementation RNFBHandleMap
|
|
28
|
+
|
|
29
|
+
- (instancetype)init {
|
|
30
|
+
self = [super init];
|
|
31
|
+
if (self) {
|
|
32
|
+
_map = [NSMutableDictionary dictionary];
|
|
33
|
+
_lock = [[NSObject alloc] init];
|
|
34
|
+
}
|
|
35
|
+
return self;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
- (BOOL)put:(id)key value:(id)value error:(NSError **)error {
|
|
39
|
+
@synchronized(self.lock) {
|
|
40
|
+
if (self.map[key] != nil) {
|
|
41
|
+
if (error != nil) {
|
|
42
|
+
NSString *message = [NSString stringWithFormat:@"Handle id already registered: %@", key];
|
|
43
|
+
*error = [NSError errorWithDomain:RNFBHandleMapErrorDomain
|
|
44
|
+
code:RNFBHandleMapErrorCollision
|
|
45
|
+
userInfo:@{NSLocalizedDescriptionKey : message}];
|
|
46
|
+
}
|
|
47
|
+
return NO;
|
|
48
|
+
}
|
|
49
|
+
self.map[key] = value;
|
|
50
|
+
return YES;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
- (BOOL)putIfAbsent:(id)key value:(id)value {
|
|
55
|
+
@synchronized(self.lock) {
|
|
56
|
+
if (self.map[key] != nil) {
|
|
57
|
+
return NO;
|
|
58
|
+
}
|
|
59
|
+
self.map[key] = value;
|
|
60
|
+
return YES;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
- (BOOL)putIfAbsentOrSame:(id)key value:(id)value {
|
|
65
|
+
@synchronized(self.lock) {
|
|
66
|
+
id existing = self.map[key];
|
|
67
|
+
if (existing == nil) {
|
|
68
|
+
self.map[key] = value;
|
|
69
|
+
return YES;
|
|
70
|
+
}
|
|
71
|
+
return existing == value;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
- (id)putReplacing:(id)key value:(id)value {
|
|
76
|
+
@synchronized(self.lock) {
|
|
77
|
+
id previous = self.map[key];
|
|
78
|
+
self.map[key] = value;
|
|
79
|
+
return previous;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
- (id)get:(id)key {
|
|
84
|
+
@synchronized(self.lock) {
|
|
85
|
+
return self.map[key];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
- (id)take:(id)key {
|
|
90
|
+
@synchronized(self.lock) {
|
|
91
|
+
id value = self.map[key];
|
|
92
|
+
[self.map removeObjectForKey:key];
|
|
93
|
+
return value;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
- (id)takeIf:(id)key when:(BOOL (^)(id))condition {
|
|
98
|
+
@synchronized(self.lock) {
|
|
99
|
+
id value = self.map[key];
|
|
100
|
+
if (value != nil && condition(value)) {
|
|
101
|
+
[self.map removeObjectForKey:key];
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
return nil;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
- (NSArray *)takeAll {
|
|
109
|
+
@synchronized(self.lock) {
|
|
110
|
+
NSArray *values = [self.map allValues];
|
|
111
|
+
[self.map removeAllObjects];
|
|
112
|
+
return values;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@end
|
|
@@ -64,8 +64,9 @@ static NSString *const RNFBErrorDomain = @"RNFBErrorDomain";
|
|
|
64
64
|
// missing from android sdk - ios only:
|
|
65
65
|
firAppOptions[@"clientId"] = firOptions.clientID;
|
|
66
66
|
// not in FIROptions API but in JS SDK and project config JSON
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
NSString *customAuthDomain = [RNFBAppModule getCustomDomain:name];
|
|
68
|
+
if (customAuthDomain != nil) {
|
|
69
|
+
firAppOptions[@"authDomain"] = customAuthDomain;
|
|
69
70
|
}
|
|
70
71
|
|
|
71
72
|
firAppDictionary[@"options"] = firAppOptions;
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
4D97BAD423042F2700077358 /* RNFBUtilsModule.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4D97BAD323042F2700077358 /* RNFBUtilsModule.mm */; };
|
|
19
19
|
DAA1F28522FCF6AD00F4DEC1 /* RNFBVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA1F28422FCF6AD00F4DEC1 /* RNFBVersion.m */; };
|
|
20
20
|
RNFB00001A2025011100000001 /* RNFBNullSentinelInterceptor.m in Sources */ = {isa = PBXBuildFile; fileRef = RNFB00001A2025011100000002 /* RNFBNullSentinelInterceptor.m */; };
|
|
21
|
+
RNFB00001A2026082000000001 /* RNFBHandleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = RNFB00001A2026082000000002 /* RNFBHandleMap.m */; };
|
|
21
22
|
/* End PBXBuildFile section */
|
|
22
23
|
|
|
23
24
|
/* Begin PBXCopyFilesBuildPhase section */
|
|
@@ -56,6 +57,8 @@
|
|
|
56
57
|
DAA1F28622FCF6C200F4DEC1 /* RNFBVersion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNFBVersion.h; sourceTree = "<group>"; };
|
|
57
58
|
RNFB00001A2025011100000002 /* RNFBNullSentinelInterceptor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBNullSentinelInterceptor.m; sourceTree = "<group>"; };
|
|
58
59
|
RNFB00001A2025011100000003 /* RNFBNullSentinelInterceptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNFBNullSentinelInterceptor.h; sourceTree = "<group>"; };
|
|
60
|
+
RNFB00001A2026082000000002 /* RNFBHandleMap.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBHandleMap.m; sourceTree = "<group>"; };
|
|
61
|
+
RNFB00001A2026082000000003 /* RNFBHandleMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RNFBHandleMap.h; sourceTree = "<group>"; };
|
|
59
62
|
/* End PBXFileReference section */
|
|
60
63
|
|
|
61
64
|
/* Begin PBXFrameworksBuildPhase section */
|
|
@@ -102,6 +105,8 @@
|
|
|
102
105
|
4D97BAD323042F2700077358 /* RNFBUtilsModule.mm */,
|
|
103
106
|
RNFB00001A2025011100000003 /* RNFBNullSentinelInterceptor.h */,
|
|
104
107
|
RNFB00001A2025011100000002 /* RNFBNullSentinelInterceptor.m */,
|
|
108
|
+
RNFB00001A2026082000000003 /* RNFBHandleMap.h */,
|
|
109
|
+
RNFB00001A2026082000000002 /* RNFBHandleMap.m */,
|
|
105
110
|
);
|
|
106
111
|
path = RNFBApp;
|
|
107
112
|
sourceTree = "<group>";
|
|
@@ -184,6 +189,7 @@
|
|
|
184
189
|
2744B9A421F48A4F004F8E3F /* RCTConvert+FIROptions.m in Sources */,
|
|
185
190
|
2748D8152236426300FC8DC8 /* RNFBJSON.m in Sources */,
|
|
186
191
|
RNFB00001A2025011100000001 /* RNFBNullSentinelInterceptor.m in Sources */,
|
|
192
|
+
RNFB00001A2026082000000001 /* RNFBHandleMap.m in Sources */,
|
|
187
193
|
);
|
|
188
194
|
runOnlyForDeploymentPostprocessing = 0;
|
|
189
195
|
};
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
// !$*UTF8*$!
|
|
2
|
+
{
|
|
3
|
+
archiveVersion = 1;
|
|
4
|
+
classes = {
|
|
5
|
+
};
|
|
6
|
+
objectVersion = 56;
|
|
7
|
+
objects = {
|
|
8
|
+
|
|
9
|
+
/* Begin PBXBuildFile section */
|
|
10
|
+
A1000000000000000000000A /* RNFBHandleMap.m in Sources */ = {isa = PBXBuildFile; fileRef = A10000000000000000000008 /* RNFBHandleMap.m */; };
|
|
11
|
+
A1000000000000000000000B /* RNFBHandleMapTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A10000000000000000000009 /* RNFBHandleMapTests.m */; };
|
|
12
|
+
A10000000000000000000015 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A10000000000000000000014 /* XCTest.framework */; };
|
|
13
|
+
/* End PBXBuildFile section */
|
|
14
|
+
|
|
15
|
+
/* Begin PBXFileReference section */
|
|
16
|
+
A10000000000000000000003 /* RNFBAppUnitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNFBAppUnitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
17
|
+
A10000000000000000000007 /* RNFBHandleMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = RNFBHandleMap.h; path = ../RNFBApp/RNFBHandleMap.h; sourceTree = SOURCE_ROOT; };
|
|
18
|
+
A10000000000000000000008 /* RNFBHandleMap.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = RNFBHandleMap.m; path = ../RNFBApp/RNFBHandleMap.m; sourceTree = SOURCE_ROOT; };
|
|
19
|
+
A10000000000000000000009 /* RNFBHandleMapTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNFBHandleMapTests.m; sourceTree = "<group>"; };
|
|
20
|
+
A10000000000000000000014 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/MacOSX.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
|
21
|
+
/* End PBXFileReference section */
|
|
22
|
+
|
|
23
|
+
/* Begin PBXFrameworksBuildPhase section */
|
|
24
|
+
A1000000000000000000000D /* Frameworks */ = {
|
|
25
|
+
isa = PBXFrameworksBuildPhase;
|
|
26
|
+
buildActionMask = 2147483647;
|
|
27
|
+
files = (
|
|
28
|
+
A10000000000000000000015 /* XCTest.framework in Frameworks */,
|
|
29
|
+
);
|
|
30
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
31
|
+
};
|
|
32
|
+
/* End PBXFrameworksBuildPhase section */
|
|
33
|
+
|
|
34
|
+
/* Begin PBXGroup section */
|
|
35
|
+
A10000000000000000000004 = {
|
|
36
|
+
isa = PBXGroup;
|
|
37
|
+
children = (
|
|
38
|
+
A10000000000000000000006 /* Sources */,
|
|
39
|
+
A10000000000000000000005 /* Products */,
|
|
40
|
+
);
|
|
41
|
+
sourceTree = "<group>";
|
|
42
|
+
};
|
|
43
|
+
A10000000000000000000005 /* Products */ = {
|
|
44
|
+
isa = PBXGroup;
|
|
45
|
+
children = (
|
|
46
|
+
A10000000000000000000003 /* RNFBAppUnitTests.xctest */,
|
|
47
|
+
);
|
|
48
|
+
name = Products;
|
|
49
|
+
sourceTree = "<group>";
|
|
50
|
+
};
|
|
51
|
+
A10000000000000000000006 /* Sources */ = {
|
|
52
|
+
isa = PBXGroup;
|
|
53
|
+
children = (
|
|
54
|
+
A10000000000000000000007 /* RNFBHandleMap.h */,
|
|
55
|
+
A10000000000000000000008 /* RNFBHandleMap.m */,
|
|
56
|
+
A10000000000000000000009 /* RNFBHandleMapTests.m */,
|
|
57
|
+
);
|
|
58
|
+
name = Sources;
|
|
59
|
+
sourceTree = "<group>";
|
|
60
|
+
};
|
|
61
|
+
/* End PBXGroup section */
|
|
62
|
+
|
|
63
|
+
/* Begin PBXNativeTarget section */
|
|
64
|
+
A10000000000000000000002 /* RNFBAppUnitTests */ = {
|
|
65
|
+
isa = PBXNativeTarget;
|
|
66
|
+
buildConfigurationList = A10000000000000000000013 /* Build configuration list for PBXNativeTarget "RNFBAppUnitTests" */;
|
|
67
|
+
buildPhases = (
|
|
68
|
+
A1000000000000000000000C /* Sources */,
|
|
69
|
+
A1000000000000000000000D /* Frameworks */,
|
|
70
|
+
);
|
|
71
|
+
buildRules = (
|
|
72
|
+
);
|
|
73
|
+
dependencies = (
|
|
74
|
+
);
|
|
75
|
+
name = RNFBAppUnitTests;
|
|
76
|
+
productName = RNFBAppUnitTests;
|
|
77
|
+
productReference = A10000000000000000000003 /* RNFBAppUnitTests.xctest */;
|
|
78
|
+
productType = "com.apple.product-type.bundle.unit-test";
|
|
79
|
+
};
|
|
80
|
+
/* End PBXNativeTarget section */
|
|
81
|
+
|
|
82
|
+
/* Begin PBXProject section */
|
|
83
|
+
A10000000000000000000001 /* Project object */ = {
|
|
84
|
+
isa = PBXProject;
|
|
85
|
+
attributes = {
|
|
86
|
+
BuildIndependentTargetsInParallel = 1;
|
|
87
|
+
LastUpgradeCheck = 2600;
|
|
88
|
+
ORGANIZATIONNAME = Invertase;
|
|
89
|
+
TargetAttributes = {
|
|
90
|
+
A10000000000000000000002 = {
|
|
91
|
+
CreatedOnToolsVersion = 26.0;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
buildConfigurationList = A10000000000000000000012 /* Build configuration list for PBXProject "RNFBAppUnitTests" */;
|
|
96
|
+
compatibilityVersion = "Xcode 14.0";
|
|
97
|
+
developmentRegion = en;
|
|
98
|
+
hasScannedForEncodings = 0;
|
|
99
|
+
knownRegions = (
|
|
100
|
+
en,
|
|
101
|
+
Base,
|
|
102
|
+
);
|
|
103
|
+
mainGroup = A10000000000000000000004;
|
|
104
|
+
productRefGroup = A10000000000000000000005 /* Products */;
|
|
105
|
+
projectDirPath = "";
|
|
106
|
+
projectRoot = "";
|
|
107
|
+
targets = (
|
|
108
|
+
A10000000000000000000002 /* RNFBAppUnitTests */,
|
|
109
|
+
);
|
|
110
|
+
};
|
|
111
|
+
/* End PBXProject section */
|
|
112
|
+
|
|
113
|
+
/* Begin PBXSourcesBuildPhase section */
|
|
114
|
+
A1000000000000000000000C /* Sources */ = {
|
|
115
|
+
isa = PBXSourcesBuildPhase;
|
|
116
|
+
buildActionMask = 2147483647;
|
|
117
|
+
files = (
|
|
118
|
+
A1000000000000000000000A /* RNFBHandleMap.m in Sources */,
|
|
119
|
+
A1000000000000000000000B /* RNFBHandleMapTests.m in Sources */,
|
|
120
|
+
);
|
|
121
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
122
|
+
};
|
|
123
|
+
/* End PBXSourcesBuildPhase section */
|
|
124
|
+
|
|
125
|
+
/* Begin XCBuildConfiguration section */
|
|
126
|
+
A1000000000000000000000E /* Debug */ = {
|
|
127
|
+
isa = XCBuildConfiguration;
|
|
128
|
+
buildSettings = {
|
|
129
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
130
|
+
CLANG_ENABLE_MODULES = YES;
|
|
131
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
132
|
+
COPY_PHASE_STRIP = NO;
|
|
133
|
+
DEBUG_INFORMATION_FORMAT = dwarf;
|
|
134
|
+
ENABLE_TESTABILITY = YES;
|
|
135
|
+
GCC_C_LANGUAGE_STANDARD = gnu17;
|
|
136
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
|
137
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
|
138
|
+
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
|
139
|
+
ONLY_ACTIVE_ARCH = YES;
|
|
140
|
+
SDKROOT = macosx;
|
|
141
|
+
SUPPORTED_PLATFORMS = macosx;
|
|
142
|
+
};
|
|
143
|
+
name = Debug;
|
|
144
|
+
};
|
|
145
|
+
A1000000000000000000000F /* Release */ = {
|
|
146
|
+
isa = XCBuildConfiguration;
|
|
147
|
+
buildSettings = {
|
|
148
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
|
149
|
+
CLANG_ENABLE_MODULES = YES;
|
|
150
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
|
151
|
+
COPY_PHASE_STRIP = YES;
|
|
152
|
+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
|
153
|
+
GCC_C_LANGUAGE_STANDARD = gnu17;
|
|
154
|
+
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
|
155
|
+
SDKROOT = macosx;
|
|
156
|
+
SUPPORTED_PLATFORMS = macosx;
|
|
157
|
+
};
|
|
158
|
+
name = Release;
|
|
159
|
+
};
|
|
160
|
+
A10000000000000000000010 /* Debug */ = {
|
|
161
|
+
isa = XCBuildConfiguration;
|
|
162
|
+
buildSettings = {
|
|
163
|
+
CLANG_ENABLE_CODE_COVERAGE = YES;
|
|
164
|
+
CODE_SIGNING_ALLOWED = NO;
|
|
165
|
+
CODE_SIGNING_REQUIRED = NO;
|
|
166
|
+
CODE_SIGN_IDENTITY = "-";
|
|
167
|
+
COMBINE_HIDPI_IMAGES = YES;
|
|
168
|
+
GENERATE_INFOPLIST_FILE = YES;
|
|
169
|
+
HEADER_SEARCH_PATHS = "$(SRCROOT)/../RNFBApp";
|
|
170
|
+
LD_RUNPATH_SEARCH_PATHS = (
|
|
171
|
+
"$(inherited)",
|
|
172
|
+
"@executable_path/../Frameworks",
|
|
173
|
+
"@loader_path/../Frameworks",
|
|
174
|
+
);
|
|
175
|
+
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
|
176
|
+
OTHER_CFLAGS = (
|
|
177
|
+
"-fprofile-instr-generate",
|
|
178
|
+
"-fcoverage-mapping",
|
|
179
|
+
);
|
|
180
|
+
OTHER_LDFLAGS = (
|
|
181
|
+
"-fprofile-instr-generate",
|
|
182
|
+
);
|
|
183
|
+
PRODUCT_BUNDLE_IDENTIFIER = io.invertase.firebase.RNFBAppUnitTests;
|
|
184
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
185
|
+
SDKROOT = macosx;
|
|
186
|
+
SUPPORTED_PLATFORMS = macosx;
|
|
187
|
+
};
|
|
188
|
+
name = Debug;
|
|
189
|
+
};
|
|
190
|
+
A10000000000000000000011 /* Release */ = {
|
|
191
|
+
isa = XCBuildConfiguration;
|
|
192
|
+
buildSettings = {
|
|
193
|
+
CLANG_ENABLE_CODE_COVERAGE = YES;
|
|
194
|
+
CODE_SIGNING_ALLOWED = NO;
|
|
195
|
+
CODE_SIGNING_REQUIRED = NO;
|
|
196
|
+
CODE_SIGN_IDENTITY = "-";
|
|
197
|
+
COMBINE_HIDPI_IMAGES = YES;
|
|
198
|
+
GENERATE_INFOPLIST_FILE = YES;
|
|
199
|
+
HEADER_SEARCH_PATHS = "$(SRCROOT)/../RNFBApp";
|
|
200
|
+
LD_RUNPATH_SEARCH_PATHS = (
|
|
201
|
+
"$(inherited)",
|
|
202
|
+
"@executable_path/../Frameworks",
|
|
203
|
+
"@loader_path/../Frameworks",
|
|
204
|
+
);
|
|
205
|
+
MACOSX_DEPLOYMENT_TARGET = 14.0;
|
|
206
|
+
PRODUCT_BUNDLE_IDENTIFIER = io.invertase.firebase.RNFBAppUnitTests;
|
|
207
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
208
|
+
SDKROOT = macosx;
|
|
209
|
+
SUPPORTED_PLATFORMS = macosx;
|
|
210
|
+
};
|
|
211
|
+
name = Release;
|
|
212
|
+
};
|
|
213
|
+
/* End XCBuildConfiguration section */
|
|
214
|
+
|
|
215
|
+
/* Begin XCConfigurationList section */
|
|
216
|
+
A10000000000000000000012 /* Build configuration list for PBXProject "RNFBAppUnitTests" */ = {
|
|
217
|
+
isa = XCConfigurationList;
|
|
218
|
+
buildConfigurations = (
|
|
219
|
+
A1000000000000000000000E /* Debug */,
|
|
220
|
+
A1000000000000000000000F /* Release */,
|
|
221
|
+
);
|
|
222
|
+
defaultConfigurationIsVisible = 0;
|
|
223
|
+
defaultConfigurationName = Debug;
|
|
224
|
+
};
|
|
225
|
+
A10000000000000000000013 /* Build configuration list for PBXNativeTarget "RNFBAppUnitTests" */ = {
|
|
226
|
+
isa = XCConfigurationList;
|
|
227
|
+
buildConfigurations = (
|
|
228
|
+
A10000000000000000000010 /* Debug */,
|
|
229
|
+
A10000000000000000000011 /* Release */,
|
|
230
|
+
);
|
|
231
|
+
defaultConfigurationIsVisible = 0;
|
|
232
|
+
defaultConfigurationName = Debug;
|
|
233
|
+
};
|
|
234
|
+
/* End XCConfigurationList section */
|
|
235
|
+
};
|
|
236
|
+
rootObject = A10000000000000000000001 /* Project object */;
|
|
237
|
+
}
|
|
@@ -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 = "A10000000000000000000002"
|
|
18
|
+
BuildableName = "RNFBAppUnitTests.xctest"
|
|
19
|
+
BlueprintName = "RNFBAppUnitTests"
|
|
20
|
+
ReferencedContainer = "container:RNFBAppUnitTests.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 = "A10000000000000000000002"
|
|
37
|
+
BuildableName = "RNFBAppUnitTests.xctest"
|
|
38
|
+
BlueprintName = "RNFBAppUnitTests"
|
|
39
|
+
ReferencedContainer = "container:RNFBAppUnitTests.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>
|