From 954e4d5df13b14aee9c1112db67a23729d12acfd Mon Sep 17 00:00:00 2001 From: Chen Liang Date: Mon, 9 Jul 2018 14:33:41 -0700 Subject: avoid calling [UIApplication sharedApplication] in app extensions (#1503) --- Firebase/Messaging/FIRMessagingUtilities.m | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Firebase/Messaging/FIRMessagingUtilities.m') 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 + // 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]; +} -- cgit v1.2.3