From 4713ddf8dfec0be33c581fb977d32941b0ca7ff8 Mon Sep 17 00:00:00 2001 From: davidair Date: Wed, 30 May 2018 11:53:51 -0400 Subject: Version updates for 5.2.0 (#1355) --- Firebase/Core/FIROptions.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Firebase') diff --git a/Firebase/Core/FIROptions.m b/Firebase/Core/FIROptions.m index ecdd9e9..cf1dd2b 100644 --- a/Firebase/Core/FIROptions.m +++ b/Firebase/Core/FIROptions.m @@ -43,7 +43,7 @@ NSString *const kFIRIsSignInEnabled = @"IS_SIGNIN_ENABLED"; NSString *const kFIRLibraryVersionID = @"5" // Major version (one or more digits) @"00" // Minor version (exactly 2 digits) - @"02" // Build number (exactly 2 digits) + @"03" // Build number (exactly 2 digits) @"000"; // Fixed "000" // Plist file name. NSString *const kServiceInfoFileName = @"GoogleService-Info"; -- cgit v1.2.3 From f3d34f6179572d2bbe10a15399980247f6a359fd Mon Sep 17 00:00:00 2001 From: Zsika Phillip Date: Wed, 30 May 2018 17:59:18 -0700 Subject: App extension check (#1358) --- Firebase/Auth/Source/FIRAuth.m | 14 +++++++++++++- Firebase/Auth/Source/FIRAuthAppDelegateProxy.m | 14 +++++++++++++- Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m | 15 +++++++++++++-- 3 files changed, 39 insertions(+), 4 deletions(-) (limited to 'Firebase') diff --git a/Firebase/Auth/Source/FIRAuth.m b/Firebase/Auth/Source/FIRAuth.m index c83a19a..81008ca 100644 --- a/Firebase/Auth/Source/FIRAuth.m +++ b/Firebase/Auth/Source/FIRAuth.m @@ -19,6 +19,7 @@ #import "FIRAuth_Internal.h" #import +#import #import #import #import @@ -438,7 +439,18 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; _settings = [[FIRAuthSettings alloc] init]; _firebaseAppName = [appName copy]; #if TARGET_OS_IOS - UIApplication *application = [UIApplication sharedApplication]; + + static Class applicationClass = nil; + // iOS App extensions should not call [UIApplication sharedApplication], even if UIApplication + // responds to it. + if (![FIRAppEnvironmentUtil isAppExtension]) { + Class cls = NSClassFromString(@"UIApplication"); + if (cls && [cls respondsToSelector:NSSelectorFromString(@"sharedApplication")]) { + applicationClass = cls; + } + } + UIApplication *application = [applicationClass sharedApplication]; + // Initialize the shared FIRAuthAppDelegateProxy instance in the main thread if not already. [FIRAuthAppDelegateProxy sharedInstance]; #endif diff --git a/Firebase/Auth/Source/FIRAuthAppDelegateProxy.m b/Firebase/Auth/Source/FIRAuthAppDelegateProxy.m index f13e94f..3289b4e 100644 --- a/Firebase/Auth/Source/FIRAuthAppDelegateProxy.m +++ b/Firebase/Auth/Source/FIRAuthAppDelegateProxy.m @@ -16,6 +16,8 @@ #import "FIRAuthAppDelegateProxy.h" +#import + #import NS_ASSUME_NONNULL_BEGIN @@ -200,8 +202,18 @@ static BOOL isIOS9orLater() { + (nullable instancetype)sharedInstance { static dispatch_once_t onceToken; static FIRAuthAppDelegateProxy *_Nullable sharedInstance; + // iOS App extensions should not call [UIApplication sharedApplication], even if UIApplication + // responds to it. + static Class applicationClass = nil; + if (![FIRAppEnvironmentUtil isAppExtension]) { + Class cls = NSClassFromString(@"UIApplication"); + if (cls && [cls respondsToSelector:NSSelectorFromString(@"sharedApplication")]) { + applicationClass = cls; + } + } + UIApplication *application = [applicationClass sharedApplication]; dispatch_once(&onceToken, ^{ - sharedInstance = [[self alloc] initWithApplication:[UIApplication sharedApplication]]; + sharedInstance = [[self alloc] initWithApplication:application]; }); return sharedInstance; } diff --git a/Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m b/Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m index a00d0e9..e5aa7f4 100644 --- a/Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m +++ b/Firebase/Auth/Source/FIRAuthDefaultUIDelegate.m @@ -16,6 +16,8 @@ #import "FIRAuthDefaultUIDelegate.h" +#import + NS_ASSUME_NONNULL_BEGIN @interface FIRAuthDefaultUIDelegate () @@ -58,8 +60,17 @@ NS_ASSUME_NONNULL_BEGIN } + (id)defaultUIDelegate { - UIViewController *topViewController = - [UIApplication sharedApplication].keyWindow.rootViewController; + // iOS App extensions should not call [UIApplication sharedApplication], even if UIApplication + // responds to it. + static Class applicationClass = nil; + if (![FIRAppEnvironmentUtil isAppExtension]) { + Class cls = NSClassFromString(@"UIApplication"); + if (cls && [cls respondsToSelector:NSSelectorFromString(@"sharedApplication")]) { + applicationClass = cls; + } + } + UIApplication *application = [applicationClass sharedApplication]; + UIViewController *topViewController = application.keyWindow.rootViewController; while (true){ if (topViewController.presentedViewController) { topViewController = topViewController.presentedViewController; -- cgit v1.2.3 From cea8d14dc075144d41bf0002e82fb13010b260a4 Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Wed, 30 May 2018 18:00:25 -0700 Subject: Changelog for FirebaseAuth 5.0.1 (#1359) --- Firebase/Auth/CHANGELOG.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Firebase') diff --git a/Firebase/Auth/CHANGELOG.md b/Firebase/Auth/CHANGELOG.md index 5a3fcef..292f8bd 100644 --- a/Firebase/Auth/CHANGELOG.md +++ b/Firebase/Auth/CHANGELOG.md @@ -1,9 +1,12 @@ +# v5.0.1 +- Restore 4.x level of support for extensions (#1357). + # v5.0.0 - Adds APIs for phone Auth testing to bypass the verification flow (#1192). - Changes the callback block signature for sign in and create user methods to provide an AuthDataResult that includes the user and user info (#1123, #1186). - Removes GoogleToolboxForMac dependency (#1175). -- Removes misc. deprecated APIs (#1188, #1200) +- Removes miscellaneous deprecated APIs (#1188, #1200). # v4.6.1 - Fixes crash which occurred when certain Firebase IDTokens were being parsed (#1076). -- cgit v1.2.3