In-App Frames
Learn about how your SDK marks frames as in-app.
The sentry-cocoa
SDK always marks public frameworks such as UIKitCore, CoreFoundation, GraphicsServices, and so forth as not inApp
. If you're using a version of our SDK that's older than 7.0.0, all private frameworks and the main executable inside the application bundle will be marked as inApp
. If you're using version 7.0.0 and up, the SDK will only set the inApp
flag for frames originating from the main executable by using the CFBundleExecutable. For private frameworks such as Sentry, dynamic and static frameworks will differ.
If you're not familiar with these terms, you can learn more:
If you use dynamic frameworks such as Sentry, the Sentry SDK will mark them as not inApp
. If you have a private framework that should be marked as inApp
, use the SentryOptions inAppInclude
or inAppExclude
.
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")
}
Because static frameworks end up in the main executable, if you're using one, the Sentry SDK won't be able to detect if a frame of the main executable originates from your application or a private framework and will mark all frames as inApp
. To work around this, tell Sentry which frames should be marked as not inApp
, using Stack Trace Rules on the server.
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").