diff options
author | Chen Liang <chliang@google.com> | 2018-07-09 14:33:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-09 14:33:41 -0700 |
commit | 954e4d5df13b14aee9c1112db67a23729d12acfd (patch) | |
tree | debab82666deb5d7ff1e99d55f5dba749db1ffb1 /Firebase/Messaging/FIRMessagingUtilities.m | |
parent | bd69fae81077dd1107e4abe8a8722cb3d8a5fb29 (diff) |
avoid calling [UIApplication sharedApplication] in app extensions (#1503)
Diffstat (limited to 'Firebase/Messaging/FIRMessagingUtilities.m')
-rw-r--r-- | Firebase/Messaging/FIRMessagingUtilities.m | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Firebase/Messaging/FIRMessagingUtilities.m b/Firebase/Messaging/FIRMessagingUtilities.m index 60f3f28..fa3a233 100644 --- a/Firebase/Messaging/FIRMessagingUtilities.m +++ b/Firebase/Messaging/FIRMessagingUtilities.m @@ -20,6 +20,8 @@ #import "FIRMessagingLogger.h" +#import <GoogleUtilities/GULAppEnvironmentUtil.h> + // Convert the macro to a string #define STR_EXPAND(x) #x #define STR(x) STR_EXPAND(x) @@ -171,3 +173,16 @@ uint64_t FIRMessagingGetFreeDiskSpaceInMB(void) { return 0; } } + +UIApplication *FIRMessagingUIApplication(void) { + static Class applicationClass = nil; + // iOS App extensions should not call [UIApplication sharedApplication], even if UIApplication + // responds to it. + if (![GULAppEnvironmentUtil isAppExtension]) { + Class cls = NSClassFromString(@"UIApplication"); + if (cls && [cls respondsToSelector:NSSelectorFromString(@"sharedApplication")]) { + applicationClass = cls; + } + } + return [applicationClass sharedApplication]; +} |