aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Messaging/FIRMessagingUtilities.m
diff options
context:
space:
mode:
authorGravatar Chen Liang <chliang@google.com>2018-07-09 14:33:41 -0700
committerGravatar GitHub <noreply@github.com>2018-07-09 14:33:41 -0700
commit954e4d5df13b14aee9c1112db67a23729d12acfd (patch)
treedebab82666deb5d7ff1e99d55f5dba749db1ffb1 /Firebase/Messaging/FIRMessagingUtilities.m
parentbd69fae81077dd1107e4abe8a8722cb3d8a5fb29 (diff)
avoid calling [UIApplication sharedApplication] in app extensions (#1503)
Diffstat (limited to 'Firebase/Messaging/FIRMessagingUtilities.m')
-rw-r--r--Firebase/Messaging/FIRMessagingUtilities.m15
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];
+}