Skip to content

Commit 4ffae2c

Browse files
authored
merge master into googledatalogger branch (#2224)
* Clean up FIRAuth bits from FIRApp (#2110) * Clean up FIRAuth bits from FIRApp * Fix tvOS sample's Auth APIs. (#2158) * Update CHANGELOG for Firestore v0.16.1 (#2164) * Update the name of certificates bundle (#2171) To accommodate for release 5.14.0. * Fix format string in FSTRemoteStore error logging (#2172) * C++: replace `FSTMaybeDocumentDictionary` with a C++ equivalent (#2139) Also eliminate most usages of `FSTDocumentKey`, remove most methods from the Objective-C class and make it just a wrapper over `DocumentKey`. The only usage that cannot be directly replaced by C++ `DocumentKey` is in `FSTFieldValue`. * Port performance optimizations to speed up reading large collections from Android (#2140) Straightforward port of firebase/firebase-android-sdk#123. * When searching for gRPC certificates, search the main bundle as well (#2183) When the project is manually configured, it's possible that the certificates file gets added to the main bundle, not the Firestore framework bundle; make sure the bundle can be loaded in that case as well. * Fix Rome instructions (#2184) * Use registerLibrary for pods in Firebase workspace (#2137) * Add versioning to Functions and convert to FIRLibrary * Convert Firestore to FIRLibrary * Point travis to FirebaseCore pre-release for its deps * Update user agent strings to match spec * Port Memory remote document cache to C++ (#2176) * Port Memory remote document cache to C++ * Minor tweaks to release note (#2182) * Minor tweaks * Update CHANGELOG.md * Update CHANGELOG.md * Port leveldb remote document cache to C++ (#2186) * Port leveldb remote document cache * Remove start from persistence interface (#2173) * Remove start from persistence interface, switch FSTLevelDB to use a factory method that returns Status * Fix small typos in public documentation. (#2192) * fix the unit test #1451 (#2187) * Port FSTRemoteDocumentCacheTest to use C++ interface (#2194) * Release 5.15.0 (#2195) * Update versions for Release 5.15.0 * Create 5.15.0.json * Update CHANGELOG for Firestore v0.16.1 (#2164) * Update the name of certificates bundle (#2171) To accommodate for release 5.14.0. * Fix format string in FSTRemoteStore error logging (#2172) * Update CHANGELOG.md * Update 5.15.0.json * Port FSTRemoteDocumentCache (#2196) * Remove FSTRemoteDocumentCache * Fix leaks in Firestore (#2199) * Clean up retain cycle in FSTLevelDB. * Explicitly CFRelease our SCNetworkReachabilityRef. * Make gRPC stream delegates weak * Port DocumentState and UnknownDocument. (#2160) Part of heldwriteacks. Serialization work for this is largely deferred until after nanopb-master is merged with master. * Port FSTMemoryQueryCache to C++ (#2197) * Port FSTLevelDBQueryCache to C++ (#2202) * Port FSTLevelDBQueryCache to C++ * Fix Storage private imports. (#2206) * Add missing Foundation imports to Interop headers (#2207) * Migrate Firestore to the v1 protocol (#2200) * Use python executable directly * python2 is not guaranteed to exist * scripts aren't directly executable on Windows * Add Firestore v1 protos * Point cmake at Firestore v1 protos * Regenerate protobuf-related sources * Make local protos refer to v1 protos * fixup! Regenerate protobuf-related sources * Remove v1beta1 protos * s/v1beta1/v1/g in source. * s/v1beta1/v1/ in the Xcode project * Remove stale bug comments. This was fixed by adding an explicit FieldPath API rather than exposing escaping to the end user. * Add SymbolCollisionTest comment for ARCore (#2210) * Continue work on ReferenceSet (#2213) * Migrate FSTDocumentReference to C++ * Change SortedSet template parameter ordering Makes it easier to specify a comparator without specifying what the empty member of the underlying map is. * Migrate MemoryMutationQueue to C++ references by key * migrate.py * CMake * Finish porting ReferenceSet * Swap reference set implementation * Port MemoryQueryCache to use ported ReferenceSet * Port FSTReferenceSetTest * Port usage for limbo document refs * Port LRU and LocalStore usages * Remove FSTReferenceSet and FSTDocumentReference * Style * Add newline * Implement QueryCache interface and port QueryCache tests (#2209) * Implement QueryCache interface and port tests * Port production usages of QueryCache (#2211) * Remove FSTQueryCache and implementations * Switch size() to size_t * Keep imports consistent (#2217) * Fix private tests by removing unnecessary storyboard entries (#2218) * Fix xcode 9 build of FDLBuilderTestAppObjC (#2219) * Rework FieldMask to use a (ordered) set of FieldPaths (#2136) Rather than a vector. Port of firebase/firebase-android-sdk#137 * Travis to Xcode 10.1 and clang-format to 8.0.0 (tags/google/stable/2018-08-24) (#2222) * Travis to Xcode 10.1 * Update to clang-format 8 * Update clang-format homebrew link * Work around space in filename style.sh issue
1 parent dfa3887 commit 4ffae2c

File tree

332 files changed

+12617
-12208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

332 files changed

+12617
-12208
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
os: osx
2-
osx_image: xcode10
2+
osx_image: xcode10.1
33
language: objective-c
44
cache:
55
- bundler

Carthage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.jso
6363
into the Xcode project and make sure they're added to the
6464
`Copy Bundle Resources` Build Phase :
6565
- For Firestore:
66-
- ./Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates.bundle
66+
- ./Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates-Firestore.bundle
6767
- For Invites:
6868
- ./Carthage/Build/iOS/FirebaseInvites.framework/GoogleSignIn.bundle
6969
- ./Carthage/Build/iOS/FirebaseInvites.framework/GPPACLPickerResources.bundle

Example/Auth/Tests/FIRAuthTests.m

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#import <FirebaseAuthInterop/FIRAuthInterop.h>
2222
#import <FirebaseCore/FIRAppInternal.h>
2323
#import <FirebaseCore/FIRComponent.h>
24-
#import <FirebaseCore/FIRComponentRegistrant.h>
24+
#import <FirebaseCore/FIRLibrary.h>
2525

2626
#import "FIRAdditionalUserInfo.h"
2727
#import "FIRAuth_Internal.h"
@@ -225,7 +225,7 @@
225225
static const NSTimeInterval kWaitInterval = .5;
226226

227227
/** Category for FIRAuth to expose FIRComponentRegistrant conformance. */
228-
@interface FIRAuth () <FIRComponentRegistrant>
228+
@interface FIRAuth () <FIRLibrary>
229229
@end
230230

231231
/** @class FIRAuthTests
@@ -365,20 +365,6 @@ - (void)testLifeCycle {
365365
XCTAssertNil(auth);
366366
}
367367

368-
/** @fn testGetUID
369-
@brief Verifies that FIRApp's getUIDImplementation is correctly set by FIRAuth.
370-
*/
371-
- (void)testGetUID {
372-
// TODO: Remove this test once Firestore, Database, and Storage move over to the new Auth interop
373-
// library.
374-
FIRApp *app = [FIRApp defaultApp];
375-
XCTAssertNotNil(app.getUIDImplementation);
376-
[[FIRAuth auth] signOut:NULL];
377-
XCTAssertNil(app.getUIDImplementation());
378-
[self waitForSignIn];
379-
XCTAssertEqualObjects(app.getUIDImplementation(), kLocalID);
380-
}
381-
382368
#pragma mark - Server API Tests
383369

384370
/** @fn testFetchProvidersForEmailSuccess
@@ -2283,8 +2269,8 @@ - (void)mockSecureTokenResponseWithError:(nullable NSError *)error {
22832269
*/
22842270
- (void)enableAutoTokenRefresh {
22852271
XCTestExpectation *expectation = [self expectationWithDescription:@"autoTokenRefreshcallback"];
2286-
[[FIRAuth auth].app getTokenForcingRefresh:NO withCallback:^(NSString *_Nullable token,
2287-
NSError *_Nullable error) {
2272+
[[FIRAuth auth] getTokenForcingRefresh:NO withCallback:^(NSString *_Nullable token,
2273+
NSError *_Nullable error) {
22882274
[expectation fulfill];
22892275
}];
22902276
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];

Example/Core/Tests/FIRAnalyticsConfigurationTest.m

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,19 +99,15 @@ - (void)testSettingAnalyticsCollectionEnabled {
9999
[self.observerMock setExpectationOrderMatters:YES];
100100
[[self.observerMock expect] notificationWithName:notificationName
101101
object:config
102-
userInfo:@{
103-
notificationName : @YES
104-
}];
102+
userInfo:@{notificationName : @YES}];
105103

106104
// Test setting to enabled.
107105
[config setAnalyticsCollectionEnabled:YES];
108106

109107
// Expect the second notification.
110108
[[self.observerMock expect] notificationWithName:notificationName
111109
object:config
112-
userInfo:@{
113-
notificationName : @NO
114-
}];
110+
userInfo:@{notificationName : @NO}];
115111

116112
// Test setting to disabled.
117113
[config setAnalyticsCollectionEnabled:NO];

Example/Core/Tests/FIRAppTest.m

Lines changed: 96 additions & 145 deletions
Large diffs are not rendered by default.

Example/Core/Tests/FIRComponentContainerTest.m

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,26 @@ @interface FIRComponentContainer (TestInternal)
2626
@property(nonatomic, strong) NSMutableDictionary<NSString *, FIRComponentCreationBlock> *components;
2727
@property(nonatomic, strong) NSMutableDictionary<NSString *, id> *cachedInstances;
2828

29-
+ (void)registerAsComponentRegistrant:(Class)klass inSet:(NSMutableSet<Class> *)allRegistrants;
30-
29+
+ (void)registerAsComponentRegistrant:(Class<FIRLibrary>)klass
30+
inSet:(NSMutableSet<Class> *)allRegistrants;
3131
- (instancetype)initWithApp:(FIRApp *)app registrants:(NSMutableSet<Class> *)allRegistrants;
32+
@end
33+
34+
@interface FIRComponentContainer (TestInternalImplementations)
35+
- (instancetype)initWithApp:(FIRApp *)app
36+
components:(NSDictionary<NSString *, FIRComponentCreationBlock> *)components;
37+
@end
38+
39+
@implementation FIRComponentContainer (TestInternalImplementations)
40+
41+
- (instancetype)initWithApp:(FIRApp *)app
42+
components:(NSDictionary<NSString *, FIRComponentCreationBlock> *)components {
43+
self = [self initWithApp:app registrants:[[NSMutableSet alloc] init]];
44+
if (self) {
45+
self.components = [components mutableCopy];
46+
}
47+
return self;
48+
}
3249

3350
@end
3451

@@ -47,13 +64,6 @@ - (void)testRegisteringConformingClass {
4764
XCTAssertTrue([allRegistrants containsObject:testClass]);
4865
}
4966

50-
- (void)testRegisteringNonConformingClass {
51-
NSMutableSet<Class> *allRegistrants = [NSMutableSet<Class> set];
52-
XCTAssertThrows(
53-
[FIRComponentContainer registerAsComponentRegistrant:[NSString class] inSet:allRegistrants]);
54-
XCTAssertTrue(allRegistrants.count == 0);
55-
}
56-
5767
- (void)testComponentsPopulatedOnInit {
5868
FIRComponentContainer *container = [self containerWithRegistrants:@ [[FIRTestClass class]]];
5969

@@ -149,7 +159,6 @@ - (FIRComponentContainer *)containerWithRegistrants:(NSArray<Class> *)registrant
149159
for (Class c in registrants) {
150160
[FIRComponentContainer registerAsComponentRegistrant:c inSet:allRegistrants];
151161
}
152-
153162
return [[FIRComponentContainer alloc] initWithApp:appMock registrants:allRegistrants];
154163
}
155164

Example/Core/Tests/FIROptionsTest.m

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ - (void)testDefaultOptions {
8282
}
8383

8484
- (void)testInitCustomizedOptions {
85-
FIROptions *options =
86-
[[FIROptions alloc] initWithGoogleAppID:kGoogleAppID GCMSenderID:kGCMSenderID];
85+
FIROptions *options = [[FIROptions alloc] initWithGoogleAppID:kGoogleAppID
86+
GCMSenderID:kGCMSenderID];
8787
options.APIKey = kAPIKey;
8888
options.bundleID = kBundleID;
8989
options.clientID = kClientID;
@@ -98,8 +98,8 @@ - (void)testInitCustomizedOptions {
9898
}
9999

100100
- (void)testInitWithContentsOfFile {
101-
NSString *filePath =
102-
[[NSBundle mainBundle] pathForResource:@"GoogleService-Info" ofType:@"plist"];
101+
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"GoogleService-Info"
102+
ofType:@"plist"];
103103
FIROptions *options = [[FIROptions alloc] initWithContentsOfFile:filePath];
104104
[self assertOptionsMatchDefaults:options andProjectID:YES];
105105
XCTAssertNil(options.deepLinkURLScheme);
@@ -136,8 +136,8 @@ - (void)assertOptionsMatchDefaults:(FIROptions *)options andProjectID:(BOOL)matc
136136

137137
- (void)testCopyingProperties {
138138
NSMutableString *mutableString;
139-
FIROptions *options =
140-
[[FIROptions alloc] initWithGoogleAppID:kGoogleAppID GCMSenderID:kGCMSenderID];
139+
FIROptions *options = [[FIROptions alloc] initWithGoogleAppID:kGoogleAppID
140+
GCMSenderID:kGCMSenderID];
141141
mutableString = [[NSMutableString alloc] initWithString:@"1"];
142142
options.APIKey = mutableString;
143143
[mutableString appendString:@"2"];
@@ -208,8 +208,8 @@ - (void)testCopyWithZone {
208208
XCTAssertEqualObjects(newOptions.deepLinkURLScheme, kDeepLinkURLScheme);
209209

210210
// customized options
211-
FIROptions *customizedOptions =
212-
[[FIROptions alloc] initWithGoogleAppID:kGoogleAppID GCMSenderID:kGCMSenderID];
211+
FIROptions *customizedOptions = [[FIROptions alloc] initWithGoogleAppID:kGoogleAppID
212+
GCMSenderID:kGCMSenderID];
213213
customizedOptions.deepLinkURLScheme = kDeepLinkURLScheme;
214214
FIROptions *copyCustomizedOptions = [customizedOptions copy];
215215
[copyCustomizedOptions setDeepLinkURLScheme:kNewDeepLinkURLScheme];
@@ -466,20 +466,16 @@ - (void)testAnalyticsCollectionGlobalSwitchOverrideToDisable {
466466
OCMStub([appMock isDataCollectionDefaultEnabled]).andReturn(YES);
467467

468468
// Test the three Analytics flags that override to disable Analytics collection.
469-
FIROptions *collectionEnabledOptions = [[FIROptions alloc] initInternalWithOptionsDictionary:@{
470-
kFIRIsAnalyticsCollectionEnabled : @NO
471-
}];
469+
FIROptions *collectionEnabledOptions = [[FIROptions alloc]
470+
initInternalWithOptionsDictionary:@{kFIRIsAnalyticsCollectionEnabled : @NO}];
472471
XCTAssertFalse(collectionEnabledOptions.isAnalyticsCollectionEnabled);
473472

474-
FIROptions *collectionDeactivatedOptions =
475-
[[FIROptions alloc] initInternalWithOptionsDictionary:@{
476-
kFIRIsAnalyticsCollectionDeactivated : @YES
477-
}];
473+
FIROptions *collectionDeactivatedOptions = [[FIROptions alloc]
474+
initInternalWithOptionsDictionary:@{kFIRIsAnalyticsCollectionDeactivated : @YES}];
478475
XCTAssertFalse(collectionDeactivatedOptions.isAnalyticsCollectionEnabled);
479476

480-
FIROptions *measurementEnabledOptions = [[FIROptions alloc] initInternalWithOptionsDictionary:@{
481-
kFIRIsMeasurementEnabled : @NO
482-
}];
477+
FIROptions *measurementEnabledOptions =
478+
[[FIROptions alloc] initInternalWithOptionsDictionary:@{kFIRIsMeasurementEnabled : @NO}];
483479
XCTAssertFalse(measurementEnabledOptions.isAnalyticsCollectionEnabled);
484480
}
485481

@@ -491,14 +487,12 @@ - (void)testAnalyticsCollectionGlobalSwitchOverrideToEnable {
491487
OCMStub([appMock isDataCollectionDefaultEnabled]).andReturn(NO);
492488

493489
// Test the two Analytics flags that can override and enable collection.
494-
FIROptions *collectionEnabledOptions = [[FIROptions alloc] initInternalWithOptionsDictionary:@{
495-
kFIRIsAnalyticsCollectionEnabled : @YES
496-
}];
490+
FIROptions *collectionEnabledOptions = [[FIROptions alloc]
491+
initInternalWithOptionsDictionary:@{kFIRIsAnalyticsCollectionEnabled : @YES}];
497492
XCTAssertTrue(collectionEnabledOptions.isAnalyticsCollectionEnabled);
498493

499-
FIROptions *measurementEnabledOptions = [[FIROptions alloc] initInternalWithOptionsDictionary:@{
500-
kFIRIsMeasurementEnabled : @YES
501-
}];
494+
FIROptions *measurementEnabledOptions =
495+
[[FIROptions alloc] initInternalWithOptionsDictionary:@{kFIRIsMeasurementEnabled : @YES}];
502496
XCTAssertTrue(measurementEnabledOptions.isAnalyticsCollectionEnabled);
503497
}
504498

@@ -534,31 +528,27 @@ - (void)testAnalyticsCollectionExplicitlySet {
534528

535529
// Test the old measurement flag.
536530
options = [[FIROptions alloc] initInternalWithOptionsDictionary:@{}];
537-
analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{
538-
kFIRIsMeasurementEnabled : @YES
539-
}];
531+
analyticsOptions =
532+
[options analyticsOptionsDictionaryWithInfoDictionary:@{kFIRIsMeasurementEnabled : @YES}];
540533
XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
541534

542535
options = [[FIROptions alloc] initInternalWithOptionsDictionary:@{}];
543-
analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{
544-
kFIRIsMeasurementEnabled : @NO
545-
}];
536+
analyticsOptions =
537+
[options analyticsOptionsDictionaryWithInfoDictionary:@{kFIRIsMeasurementEnabled : @NO}];
546538
XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
547539

548540
// For good measure, a combination of all 3 (even if they conflict).
549541
optionsDictionary =
550-
@{kFIRIsAnalyticsCollectionDeactivated : @YES,
551-
kFIRIsAnalyticsCollectionEnabled : @YES};
542+
@{kFIRIsAnalyticsCollectionDeactivated : @YES, kFIRIsAnalyticsCollectionEnabled : @YES};
552543
options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
553-
analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{
554-
kFIRIsMeasurementEnabled : @NO
555-
}];
544+
analyticsOptions =
545+
[options analyticsOptionsDictionaryWithInfoDictionary:@{kFIRIsMeasurementEnabled : @NO}];
556546
XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
557547
}
558548

559549
- (void)testModifyingOptionsThrows {
560-
FIROptions *options =
561-
[[FIROptions alloc] initWithGoogleAppID:kGoogleAppID GCMSenderID:kGCMSenderID];
550+
FIROptions *options = [[FIROptions alloc] initWithGoogleAppID:kGoogleAppID
551+
GCMSenderID:kGCMSenderID];
562552
options.editingLocked = YES;
563553

564554
// Modification to every property should result in an exception.

Example/Core/Tests/FIRTestComponents.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
#import <FirebaseCore/FIRComponent.h>
1818
#import <FirebaseCore/FIRComponentContainer.h>
19-
#import <FirebaseCore/FIRComponentRegistrant.h>
19+
#import <FirebaseCore/FIRLibrary.h>
2020

2121
@protocol FIRComponentRegistrant;
2222

@@ -28,13 +28,12 @@
2828
@end
2929

3030
/// A test class that is a component registrant.
31-
@interface FIRTestClass
32-
: NSObject <FIRTestProtocol, FIRComponentRegistrant, FIRComponentLifecycleMaintainer>
31+
@interface FIRTestClass : NSObject <FIRTestProtocol, FIRComponentLifecycleMaintainer, FIRLibrary>
3332
@end
3433

3534
/// A test class that is a component registrant, a duplicate of FIRTestClass.
3635
@interface FIRTestClassDuplicate
37-
: NSObject <FIRTestProtocol, FIRComponentRegistrant, FIRComponentLifecycleMaintainer>
36+
: NSObject <FIRTestProtocol, FIRComponentLifecycleMaintainer, FIRLibrary>
3837
@end
3938

4039
#pragma mark - Eager Component
@@ -47,7 +46,7 @@
4746
/// A test class that is a component registrant that provides a component requiring eager
4847
/// instantiation, and is cached for easier validation that it was instantiated.
4948
@interface FIRTestClassEagerCached
50-
: NSObject <FIRTestProtocolEagerCached, FIRComponentRegistrant, FIRComponentLifecycleMaintainer>
49+
: NSObject <FIRTestProtocol, FIRComponentLifecycleMaintainer, FIRLibrary>
5150
@end
5251

5352
#pragma mark - Cached Component
@@ -59,5 +58,5 @@
5958
/// A test class that is a component registrant that provides a component that requests to be
6059
/// cached.
6160
@interface FIRTestClassCached
62-
: NSObject <FIRTestProtocolCached, FIRComponentRegistrant, FIRComponentLifecycleMaintainer>
61+
: NSObject <FIRTestProtocol, FIRComponentLifecycleMaintainer, FIRLibrary>
6362
@end

Example/Core/Tests/FIRTestComponents.m

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ @implementation FIRTestClassDuplicate
4747
- (void)doSomething {
4848
}
4949

50-
/// FIRComponentRegistrant conformance.
50+
/// FIRLibrary conformance.
5151
+ (nonnull NSArray<FIRComponent *> *)componentsToRegister {
5252
FIRComponent *testComponent =
5353
[FIRComponent componentWithProtocol:@protocol(FIRTestProtocol)
@@ -72,7 +72,7 @@ @implementation FIRTestClassEagerCached
7272
- (void)doSomethingFaster {
7373
}
7474

75-
/// FIRComponentRegistrant conformance.
75+
/// FIRLibrary conformance.
7676
+ (nonnull NSArray<FIRComponent *> *)componentsToRegister {
7777
FIRComponent *testComponent = [FIRComponent
7878
componentWithProtocol:@protocol(FIRTestProtocolEagerCached)
@@ -92,13 +92,16 @@ - (void)doSomethingFaster {
9292
- (void)appWillBeDeleted:(FIRApp *)app {
9393
}
9494

95+
- (void)doSomething {
96+
}
97+
9598
@end
9699

97100
#pragma mark - Cached Component
98101

99102
@implementation FIRTestClassCached
100103

101-
/// FIRComponentRegistrant conformance.
104+
/// FIRLibrary conformance.
102105
+ (nonnull NSArray<FIRComponent *> *)componentsToRegister {
103106
FIRComponent *testComponent = [FIRComponent
104107
componentWithProtocol:@protocol(FIRTestProtocolCached)
@@ -115,4 +118,7 @@ @implementation FIRTestClassCached
115118
- (void)appWillBeDeleted:(FIRApp *)app {
116119
}
117120

121+
- (void)doSomething {
122+
}
123+
118124
@end

Example/Database/Tests/Helpers/FIRFakeApp.m

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,27 @@ @interface FIRDatabaseComponent (Internal)
3939
- (instancetype)initWithApp:(FIRApp *)app;
4040
@end
4141

42+
@interface FIRComponentContainer (TestInternal)
43+
@property(nonatomic, strong) NSMutableDictionary<NSString *, FIRComponentCreationBlock> *components;
44+
@end
45+
46+
@interface FIRComponentContainer (TestInternalImplementations)
47+
- (instancetype)initWithApp:(FIRApp *)app
48+
components:(NSDictionary<NSString *, FIRComponentCreationBlock> *)components;
49+
@end
50+
51+
@implementation FIRComponentContainer (TestInternalImplementations)
52+
53+
- (instancetype)initWithApp:(FIRApp *)app
54+
components:(NSDictionary<NSString *, FIRComponentCreationBlock> *)components {
55+
self = [self initWithApp:app registrants:[[NSMutableSet alloc] init]];
56+
if (self) {
57+
self.components = [components mutableCopy];
58+
}
59+
return self;
60+
}
61+
@end
62+
4263
@implementation FIRFakeApp
4364

4465
- (instancetype)initWithName:(NSString *)name URL:(NSString *)url {

Example/DynamicLinks/App/iOS/DL-Info.plist

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@
2929
<key>NSAllowsArbitraryLoads</key>
3030
<true/>
3131
</dict>
32-
<key>UILaunchStoryboardName</key>
33-
<string>LaunchScreen</string>
34-
<key>UIMainStoryboardFile</key>
35-
<string>Main</string>
3632
<key>UIRequiredDeviceCapabilities</key>
3733
<array>
3834
<string>armv7</string>

0 commit comments

Comments
 (0)