Mark Bridges Mark Bridges - 8 months ago 164
iOS Question

iOS 8 Extension How To Detect Running

Does anyone know how you detect from within your code if you're running inside an iOS 8 Extension.

I have an app which shares classes between an app and an extension. The app code uses

[UIApplication sharedApplication]
but this isn't available from within an extension, so it won't compile saying:

'sharedApplication' is unavailable: not available iOS (App Extension)

So I need a way to detect that I'm in the extension and use an to
if that's the case.


You can use a preprocessor macro:

In the project settings use the dropdown in the topbar to select your extension target: enter image description here


  1. Click Build Settings
  2. Find (or search) Preprocessor Macros under Apple LLVM 6.0 - Preprocessing
  3. Add TARGET_IS_EXTENSION or any other name of your choice in both the debug and release sections.

Then in your code:

#ifndef TARGET_IS_EXTENSION // if it's not defined
    // Do your calls to UIApplication