Skip to content

Commit f70f00d

Browse files
Merging recent changes
2 parents efae7fc + 8bdce1d commit f70f00d

Some content is hidden

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

48 files changed

+1024
-465
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ before_install:
1313
- bundle exec pod install --project-directory=Firestore/Example --no-repo-update
1414

1515
script:
16-
- "! git grep ' $'" # Fail on trailing whitespace
16+
- "! git grep -I ' $'" # Fail on trailing whitespace in non-binary files
1717
- ./test.sh
18-
- pod lib lint FirebaseCommunity.podspec --verbose | tail -40
18+
- pod lib lint FirebaseCommunity.podspec
1919

2020
branches:
2121
only:
18.2 KB
Loading

Example/Auth/Sample/Images.xcassets/AppIcon.appiconset/Contents.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,17 @@
135135
"scale" : "2x"
136136
},
137137
{
138-
"idiom" : "ipad",
139138
"size" : "83.5x83.5",
139+
"idiom" : "ipad",
140+
"filename" : "[email protected]",
140141
"scale" : "2x"
141142
},
143+
{
144+
"size" : "1024x1024",
145+
"idiom" : "ios-marketing",
146+
"filename" : "[email protected]",
147+
"scale" : "1x"
148+
},
142149
{
143150
"idiom" : "mac",
144151
"size" : "16x16",
Loading
Loading

Example/Auth/Sample/MainViewController.m

Lines changed: 229 additions & 121 deletions
Large diffs are not rendered by default.

Example/Auth/Tests/FIRPhoneAuthProviderTests.m

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,16 @@
162162
"0invalid%2520or%2520does%2520not%2520match%2520the%2520specified%2520API%2520key.%2522%257D%26"
163163
"authType%3DverifyApp";
164164

165+
/** @var kFakeRedirectURLStringUnstructuredError
166+
@brief The format for a fake redirect URL string with unstructured error response.
167+
*/
168+
static NSString *const kFakeRedirectURLStringUnstructuredError = @"com.googleusercontent.apps.1"
169+
"23456://firebaseauth/link?deep_link_id=https%3A%2F%2Fexample.firebaseapp.com%2F__%2Fauth%2Fcal"
170+
"lback%3FfirebaseError%3D%257B%2522unstructuredcode%2522%253A%2522auth%252Funknown-error-id%2522%252"
171+
"C%2522unstructuredmessage%2522%253A%2522The%2520OAuth%2520client%2520ID%2520provided%2520is%2520either%252"
172+
"0invalid%2520or%2520does%2520not%2520match%2520the%2520specified%2520API%2520key.%2522%257D%26"
173+
"authType%3DverifyApp";
174+
165175
/** @var kTestTimeout
166176
@brief A fake timeout value for waiting for push notification.
167177
*/
@@ -721,6 +731,69 @@ - (void)testVerifyPhoneNumberUIDelegateUnexpectedError {
721731
OCMVerifyAll(_mockNotificationManager);
722732
}
723733

734+
/** @fn testVerifyPhoneNumberUIDelegateUnstructuredError
735+
@brief Tests a invocation of @c verifyPhoneNumber:UIDelegate:completion: which results in an error being surfaced due to an unexpected structure of the error response.
736+
*/
737+
- (void)testVerifyPhoneNumberUIDelegateUnstructuredError {
738+
id mockBundle = OCMClassMock([NSBundle class]);
739+
OCMStub(ClassMethod([mockBundle mainBundle])).andReturn(mockBundle);
740+
OCMStub([mockBundle objectForInfoDictionaryKey:@"CFBundleURLTypes"])
741+
.andReturn(@[ @{ @"CFBundleURLSchemes" : @[ kFakeReverseClientID ] } ]);
742+
OCMStub([mockBundle bundleIdentifier]).andReturn(kFakeBundleID);
743+
744+
// Simulate missing app token error.
745+
OCMExpect([_mockNotificationManager checkNotificationForwardingWithCallback:OCMOCK_ANY])
746+
.andCallBlock1(^(FIRAuthNotificationForwardingCallback callback) { callback(YES); });
747+
OCMExpect([_mockAppCredentialManager credential]).andReturn(nil);
748+
OCMExpect([_mockAPNSTokenManager getTokenWithCallback:OCMOCK_ANY])
749+
.andCallBlock1(^(FIRAuthAPNSTokenCallback callback) {
750+
NSError *error = [NSError errorWithDomain:FIRAuthErrorDomain
751+
code:FIRAuthErrorCodeMissingAppToken
752+
userInfo:nil];
753+
callback(nil, error);
754+
});
755+
OCMExpect([_mockBackend getProjectConfig:[OCMArg any] callback:[OCMArg any]])
756+
.andCallBlock2(^(FIRGetProjectConfigRequest *request,
757+
FIRGetProjectConfigResponseCallback callback) {
758+
XCTAssertNotNil(request);
759+
dispatch_async(FIRAuthGlobalWorkQueue(), ^() {
760+
id mockGetProjectConfigResponse = OCMClassMock([FIRGetProjectConfigResponse class]);
761+
OCMStub([mockGetProjectConfigResponse authorizedDomains]).
762+
andReturn(@[ kFakeAuthorizedDomain]);
763+
callback(mockGetProjectConfigResponse, nil);
764+
});
765+
});
766+
id mockUIDelegate = OCMProtocolMock(@protocol(FIRAuthUIDelegate));
767+
768+
// Expect view controller presentation by UIDelegate.
769+
OCMExpect([_mockURLPresenter presentURL:OCMOCK_ANY
770+
UIDelegate:mockUIDelegate
771+
callbackMatcher:OCMOCK_ANY
772+
completion:OCMOCK_ANY]).andDo(^(NSInvocation *invocation) {
773+
__unsafe_unretained id unretainedArgument;
774+
// Indices 0 and 1 indicate the hidden arguments self and _cmd.
775+
// `completion` is at index 5
776+
[invocation getArgument:&unretainedArgument atIndex:5];
777+
FIRAuthURLPresentationCompletion completion = unretainedArgument;
778+
dispatch_async(FIRAuthGlobalWorkQueue(), ^() {
779+
completion([NSURL URLWithString:kFakeRedirectURLStringUnstructuredError], nil);
780+
});
781+
});
782+
783+
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
784+
[_provider verifyPhoneNumber:kTestPhoneNumber
785+
UIDelegate:mockUIDelegate
786+
completion:^(NSString *_Nullable verificationID, NSError *_Nullable error) {
787+
XCTAssertTrue([NSThread isMainThread]);
788+
XCTAssertEqual(error.code, FIRAuthErrorCodeAppVerificationUserInteractionFailure);
789+
XCTAssertNil(verificationID);
790+
[expectation fulfill];
791+
}];
792+
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];
793+
OCMVerifyAll(_mockBackend);
794+
OCMVerifyAll(_mockNotificationManager);
795+
}
796+
724797
/** @fn testVerifyPhoneNumberUIDelegateRaiseException
725798
@brief Tests a invocation of @c verifyPhoneNumber:UIDelegate:completion: which results in an
726799
exception.

Example/Firebase.xcodeproj/project.pbxproj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,10 +334,8 @@
334334
DE26D2561F7040B2004AE1D3 /* UserInfoViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = DE26D1F51F70333E004AE1D3 /* UserInfoViewController.xib */; };
335335
DE26D2571F7040E0004AE1D3 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DE26D1DA1F70333E004AE1D3 /* Localizable.strings */; };
336336
DE26D2581F7040E4004AE1D3 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DE26D1E41F70333E004AE1D3 /* Images.xcassets */; };
337-
DE26D2671F704A08004AE1D3 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DE26D1CA1F70330A004AE1D3 /* Info.plist */; };
338337
DE26D2681F704A0C004AE1D3 /* FirebaseAuthApiTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE26D1C91F70330A004AE1D3 /* FirebaseAuthApiTests.m */; };
339338
DE26D2771F705CB5004AE1D3 /* FirebaseAuthEarlGreyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE26D1FA1F70333E004AE1D3 /* FirebaseAuthEarlGreyTests.m */; };
340-
DE26D2781F705CBC004AE1D3 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DE26D1FB1F70333E004AE1D3 /* Info.plist */; };
341339
DE26D28F1F705F34004AE1D3 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DE26D2001F70333E004AE1D3 /* GoogleService-Info.plist */; };
342340
DE26D2901F705F39004AE1D3 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE26D2041F70333E004AE1D3 /* Main.storyboard */; };
343341
DE26D2911F705F3E004AE1D3 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE26D2031F70333E004AE1D3 /* LaunchScreen.storyboard */; };
@@ -463,6 +461,8 @@
463461
DEE14D921E84468D006FA992 /* FIRLoggerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D791E844677006FA992 /* FIRLoggerTest.m */; };
464462
DEE14D931E84468D006FA992 /* FIROptionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D7A1E844677006FA992 /* FIROptionsTest.m */; };
465463
DEE14D941E84468D006FA992 /* FIRTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D7C1E844677006FA992 /* FIRTestCase.m */; };
464+
DEF288411F9AB6E100D480CF /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = DEF288401F9AB6E100D480CF /* [email protected] */; };
465+
DEF288421F9AB6E100D480CF /* [email protected] in Resources */ = {isa = PBXBuildFile; fileRef = DEF288401F9AB6E100D480CF /* [email protected] */; };
466466
FFE130CF56C04A4F1F90F58C /* Pods_Core_Example_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 491500C8507A3B80D6FE1B61 /* Pods_Core_Example_macOS.framework */; };
467467
/* End PBXBuildFile section */
468468

@@ -1162,6 +1162,7 @@
11621162
DEE14D7B1E844677006FA992 /* FIRTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRTestCase.h; sourceTree = "<group>"; };
11631163
DEE14D7C1E844677006FA992 /* FIRTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRTestCase.m; sourceTree = "<group>"; };
11641164
DEE14D7D1E844677006FA992 /* Tests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
1165+
DEF288401F9AB6E100D480CF /* [email protected] */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "[email protected]"; sourceTree = "<group>"; };
11651166
DF22AB406738B8C54A49A248 /* Pods-Auth_Tests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests_iOS/Pods-Auth_Tests_iOS.release.xcconfig"; sourceTree = "<group>"; };
11661167
E1DB278AD387CAB5D57BF135 /* Pods_Storage_IntegrationTests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_IntegrationTests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
11671168
E27502AAA61906D3F236AD2C /* Pods-Storage_Tests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests_macOS/Pods-Storage_Tests_macOS.debug.xcconfig"; sourceTree = "<group>"; };
@@ -1796,6 +1797,7 @@
17961797
DE26D1CD1F70333E004AE1D3 /* Sample */ = {
17971798
isa = PBXGroup;
17981799
children = (
1800+
DEF288401F9AB6E100D480CF /* [email protected] */,
17991801
DE26D1EA1F70333E004AE1D3 /* Sample.entitlements */,
18001802
DE26D1EB1F70333E004AE1D3 /* SampleTemplate.entitlements */,
18011803
DE26D1CF1F70333E004AE1D3 /* ApplicationDelegate.h */,
@@ -3018,6 +3020,7 @@
30183020
DE26D2561F7040B2004AE1D3 /* UserInfoViewController.xib in Resources */,
30193021
DE26D2541F7040B2004AE1D3 /* MainViewController.xib in Resources */,
30203022
DE26D2571F7040E0004AE1D3 /* Localizable.strings in Resources */,
3023+
DEF288411F9AB6E100D480CF /* [email protected] in Resources */,
30213024
DE26D2551F7040B2004AE1D3 /* SettingsViewController.xib in Resources */,
30223025
DE26D2581F7040E4004AE1D3 /* Images.xcassets in Resources */,
30233026
);
@@ -3027,15 +3030,13 @@
30273030
isa = PBXResourcesBuildPhase;
30283031
buildActionMask = 2147483647;
30293032
files = (
3030-
DE26D2671F704A08004AE1D3 /* Info.plist in Resources */,
30313033
);
30323034
runOnlyForDeploymentPostprocessing = 0;
30333035
};
30343036
DE26D26B1F705C35004AE1D3 /* Resources */ = {
30353037
isa = PBXResourcesBuildPhase;
30363038
buildActionMask = 2147483647;
30373039
files = (
3038-
DE26D2781F705CBC004AE1D3 /* Info.plist in Resources */,
30393040
);
30403041
runOnlyForDeploymentPostprocessing = 0;
30413042
};
@@ -3044,6 +3045,7 @@
30443045
buildActionMask = 2147483647;
30453046
files = (
30463047
DE26D28F1F705F34004AE1D3 /* GoogleService-Info.plist in Resources */,
3048+
DEF288421F9AB6E100D480CF /* [email protected] in Resources */,
30473049
DE26D2901F705F39004AE1D3 /* Main.storyboard in Resources */,
30483050
DE26D2911F705F3E004AE1D3 /* LaunchScreen.storyboard in Resources */,
30493051
);

Example/Messaging/App/iOS/AppDelegate.swift

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
6666
// register for remote notifications
6767
NotificationsController.shared.registerForUserFacingNotificationsFor(application)
6868
}
69-
70-
printFCMToken()
7169
return true
7270
}
7371

74-
func printFCMToken() {
75-
if let token = Messaging.messaging().fcmToken {
76-
print("FCM Token: \(token)")
77-
} else {
78-
print("FCM Token: nil")
79-
}
80-
}
81-
8272
func application(_ application: UIApplication,
8373
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
8474
print("APNS Token: \(deviceToken.hexByteString)")
@@ -116,8 +106,15 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
116106
}
117107

118108
extension AppDelegate: MessagingDelegate {
119-
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
120-
printFCMToken()
109+
// FCM tokens are always provided here. It is called generally during app start, but may be called
110+
// more than once, if the token is invalidated or updated. This is the right spot to upload this
111+
// token to your application server, or to subscribe to any topics.
112+
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
113+
if let token = Messaging.messaging().fcmToken {
114+
print("FCM Token: \(token)")
115+
} else {
116+
print("FCM Token: nil")
117+
}
121118
}
122119

123120
// Direct channel data messages are delivered here, on iOS 10.0+.

Example/Shared/Shared.xcassets/AppIcon.appiconset/Contents.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@
103103
"scale" : "2x"
104104
},
105105
{
106-
"idiom" : "ios-marketing",
107106
"size" : "1024x1024",
107+
"idiom" : "ios-marketing",
108+
"filename" : "[email protected]",
108109
"scale" : "1x"
109110
},
110111
{
Loading

Firebase/Auth/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# v4.3.1
2+
- Internal clean up.
3+
14
# v4.3.0
25
- Provides account creation and last sign-in dates as metadata to the user
36
object.

Firebase/Auth/FirebaseAuth.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
Pod::Spec.new do |s|
66
s.name = 'FirebaseAuth'
7-
s.version = '4.3.0'
7+
s.version = '4.3.1'
88
s.summary = 'Firebase Open Source Libraries for iOS.'
99

1010
s.description = <<-DESC

Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthProvider.m

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,9 @@ - (NSString *)reCAPTCHATokenForURL:(NSURL *)URL error:(NSError **)error {
266266
NSString *reason;
267267
if(errorDict[@"code"] && errorDict[@"message"]) {
268268
reason = [NSString stringWithFormat:@"[%@] - %@",errorDict[@"code"], errorDict[@"message"]];
269+
} else {
270+
reason = [NSString stringWithFormat:@"An unknown error occurred with the following "
271+
"response: %@", deepLinkURL];
269272
}
270273
*error = [FIRAuthErrorUtils appVerificationUserInteractionFailureWithReason:reason];
271274
}

Firebase/Auth/Source/FIRAuthAppDelegateProxy.m

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,22 @@ static id noop(id object, SEL cmd, ...) {
4040
}
4141
#endif
4242

43+
/** @fn isIOS9orLater
44+
@brief Checks whether the iOS version is 9 or later.
45+
@returns Whether the iOS version is 9 or later.
46+
*/
47+
static BOOL isIOS9orLater() {
48+
#if defined(__IPHONE_11_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_11_0)
49+
if (@available(iOS 9.0, *)) {
50+
return YES;
51+
}
52+
return NO;
53+
#else
54+
// UIApplicationOpenURLOptionsAnnotationKey is only available on iOS 9+.
55+
return &UIApplicationOpenURLOptionsAnnotationKey != NULL;
56+
#endif
57+
}
58+
4359
@implementation FIRAuthAppDelegateProxy {
4460
/** @var _appDelegate
4561
@brief The application delegate whose method is being swizzled.
@@ -119,7 +135,7 @@ - (nullable instancetype)initWithApplication:(nullable UIApplication *)applicati
119135
SEL openURLOptionsSelector = @selector(application:openURL:options:);
120136
SEL openURLAnnotationSelector = @selector(application:openURL:sourceApplication:annotation:);
121137
SEL handleOpenURLSelector = @selector(application:handleOpenURL:);
122-
if (&UIApplicationOpenURLOptionsAnnotationKey && // the constant is only available on iOS 9+
138+
if (isIOS9orLater() &&
123139
([_appDelegate respondsToSelector:openURLOptionsSelector] ||
124140
(![_appDelegate respondsToSelector:openURLAnnotationSelector] &&
125141
![_appDelegate respondsToSelector:handleOpenURLSelector]))) {

Firebase/Auth/Source/FIRAuthErrorUtils.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ NS_ASSUME_NONNULL_BEGIN
472472
@param reason Reason for error, returned via URL response.
473473
@return The NSError instance associated with the given FIRAuthError.
474474
*/
475-
+ (NSError *)appVerificationUserInteractionFailureWithReason:(nullable NSString *)reason;
475+
+ (NSError *)appVerificationUserInteractionFailureWithReason:(NSString *)reason;
476476

477477
/** @fn URLResponseErrorWithCode:message:
478478
@brief Constructs an @c NSError with the code and message provided.

Firebase/Auth/Source/FIRAuthErrorUtils.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,7 @@ + (NSError *)webContextCancelledErrorWithMessage:(nullable NSString *)message {
961961
return [self errorWithCode:FIRAuthInternalErrorCodeWebContextCancelled message:message];
962962
}
963963

964-
+ (NSError *)appVerificationUserInteractionFailureWithReason:(nullable NSString *)reason {
964+
+ (NSError *)appVerificationUserInteractionFailureWithReason:(NSString *)reason {
965965
return [self errorWithCode:FIRAuthInternalErrorCodeAppVerificationUserInteractionFailure
966966
userInfo:@{
967967
NSLocalizedFailureReasonErrorKey : reason

Firebase/Auth/Source/FIRAuthURLPresenter.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ @interface FIRAuthURLPresenter () <SFSafariViewControllerDelegate,
3030
FIRAuthWebViewControllerDelegate>
3131
@end
3232

33+
// Disable unguarded availability warnings because SFSafariViewController is been used throughout
34+
// the code, including as an iVar, which cannot be simply excluded by @available check.
35+
#pragma clang diagnostic push
36+
#pragma clang diagnostic ignored "-Wunguarded-availability"
37+
3338
@implementation FIRAuthURLPresenter {
3439
/** @var _isPresenting
3540
@brief Whether or not some web-based content is being presented.
@@ -176,6 +181,8 @@ - (void)finishPresentationWithURL:(nullable NSURL *)URL
176181
}
177182
}
178183

184+
#pragma clang diagnostic pop // ignored "-Wunguarded-availability"
185+
179186
@end
180187

181188
NS_ASSUME_NONNULL_END

Firebase/Core/FIRApp.m

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,12 @@
2727
NSString *const kFIRServiceCrash = @"Crash";
2828
NSString *const kFIRServiceDatabase = @"Database";
2929
NSString *const kFIRServiceDynamicLinks = @"DynamicLinks";
30+
NSString *const kFIRServiceFirestore = @"Firestore";
3031
NSString *const kFIRServiceInstanceID = @"InstanceID";
3132
NSString *const kFIRServiceInvites = @"Invites";
3233
NSString *const kFIRServiceMessaging = @"Messaging";
3334
NSString *const kFIRServiceMeasurement = @"Measurement";
35+
NSString *const kFIRServicePerformance = @"Performance";
3436
NSString *const kFIRServiceRemoteConfig = @"RemoteConfig";
3537
NSString *const kFIRServiceStorage = @"Storage";
3638
NSString *const kGGLServiceAnalytics = @"Analytics";
@@ -108,24 +110,6 @@ + (void)configureWithOptions:(FIROptions *)options {
108110
[FIRApp configureDefaultAppWithOptions:options sendingNotifications:YES];
109111
}
110112

111-
+ (void)configureWithoutSendingNotification {
112-
FIROptions *options = [FIROptions defaultOptions];
113-
if (!options) {
114-
[[NSNotificationCenter defaultCenter]
115-
postNotificationName:kFIRAppDiagnosticsNotification
116-
object:nil
117-
userInfo:@{
118-
kFIRAppDiagnosticsConfigurationTypeKey : @(FIRConfigTypeCore),
119-
kFIRAppDiagnosticsErrorKey : [FIRApp errorForMissingOptions]
120-
}];
121-
[NSException raise:kFirebaseCoreErrorDomain
122-
format:
123-
@"Please check there is a valid "
124-
@"GoogleService-Info.plist in the project."];
125-
}
126-
[FIRApp configureDefaultAppWithOptions:options sendingNotifications:NO];
127-
}
128-
129113
+ (void)configureDefaultAppWithOptions:(FIROptions *)options
130114
sendingNotifications:(BOOL)sendNotifications {
131115
if (sDefaultApp) {

Firebase/Core/FIROptions.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
NSString *const kFIRLibraryVersionID =
4343
@"4" // Major version (one or more digits)
4444
@"00" // Minor version (exactly 2 digits)
45-
@"09" // Build number (exactly 2 digits)
45+
@"10" // Build number (exactly 2 digits)
4646
@"000"; // Fixed "000"
4747
// Plist file name.
4848
NSString *const kServiceInfoFileName = @"GoogleService-Info";

Firebase/Core/Private/FIRAppInternal.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,6 @@ typedef NSString *_Nullable (^FIRAppGetUIDImplementation)(void);
152152
*/
153153
- (void)getTokenForcingRefresh:(BOOL)forceRefresh withCallback:(FIRTokenCallback)callback;
154154

155-
/**
156-
* Exposed for use by the Google pod. Configures the default app without sending notifications to
157-
* other SDKs. Otherwise, behaves exactly like +configure.
158-
*/
159-
+ (void)configureWithoutSendingNotification;
160-
161155
/**
162156
* Expose the UID of the current user for Firestore.
163157
*/

Firebase/Messaging/FIRMMessageCode.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ typedef NS_ENUM(NSInteger, FIRMessagingMessageCode) {
4444
kFIRMessagingMessageCodeSenderIDNotSuppliedForTokenFetch = 2020, // I-FCM002020
4545
kFIRMessagingMessageCodeSenderIDNotSuppliedForTokenDelete = 2021, // I-FCM002021
4646
kFIRMessagingMessageCodeAPNSTokenNotAvailableDuringTokenFetch = 2022, // I-FCM002022
47+
kFIRMessagingMessageCodeTokenDelegateMethodsNotImplemented = 2023, // I-FCM002023
4748
// FIRMessagingClient.m
4849
kFIRMessagingMessageCodeClient000 = 4000, // I-FCM004000
4950
kFIRMessagingMessageCodeClient001 = 4001, // I-FCM004001

0 commit comments

Comments
 (0)