diff options
author | Zsika Phillip <protocol86@users.noreply.github.com> | 2018-05-30 17:59:18 -0700 |
---|---|---|
committer | Paul Beusterien <paulbeusterien@google.com> | 2018-05-30 18:01:55 -0700 |
commit | f3d34f6179572d2bbe10a15399980247f6a359fd (patch) | |
tree | aaf746f8dd18f15378c6bdd5aab7e781e635725a /Firebase/Auth/Source/FIRAuth.m | |
parent | ed5c3217e89aafb25b6c11793cc0ab4a1c9d8d5c (diff) |
App extension check (#1358)
Diffstat (limited to 'Firebase/Auth/Source/FIRAuth.m')
-rw-r--r-- | Firebase/Auth/Source/FIRAuth.m | 14 |
1 files changed, 13 insertions, 1 deletions
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 <FirebaseCore/FIRAppAssociationRegistration.h> +#import <FirebaseCore/FIRAppEnvironmentUtil.h> #import <FirebaseCore/FIRAppInternal.h> #import <FirebaseCore/FIRLogger.h> #import <FirebaseCore/FIROptions.h> @@ -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 |