In-App Frames

The sentry-cocoa SDK always marks public frameworks such as UIKitCore, CoreFoundation, GraphicsServices, and so forth as not inApp. Before version 7.0.0, the sentry-cocoa SDK marks all private frameworks and the main executable inside the application bundle as inApp. Since version 7.0.0, the sentry-cocoa SDK sets the inApp flag only for frames originating from the main executable by using the CFBundleExecutable. For private frameworks, such as Sentry, dynamic and static frameworks differ. If you are not familiar with these terms, you can learn more:

Dynamic Frameworks

If you use dynamic frameworks, such as, for example, Sentry, the SDK marks these as not inApp. In case you have a private framework that should be inApp, you can use inAppInclude or inAppExclude of the SentryOptions.

Copied
import Sentry

SentrySDK.start { options in
    options.dsn = "https://examplePublicKey@o0.ingest.sentry.io/0"

    // The SDK marks all frameworks starting with MyBusinessLogic as inApp
    options.add(inAppInclude: "MyBusinessLogic")

    // The SDK marks all frameworks starting with MyFramework as not inApp
    options.add(inAppExclude: "MyFramework")
}

Static Frameworks

When using static frameworks, the frameworks end up in the main executable. Therefore, the SDK currently can't detect if a frame of the main executable originates from your application or a private framework and marks all of them as inApp. To improve your experience, use the below explained stack trace rules on the server to tell Sentry which should be marked as not inApp.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").