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.
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
.
- Package:
- cocoapods:sentry-cocoa
- Version:
- 8.32.0
- Repository:
- https://github.com/getsentry/sentry-cocoa