When submitting your app to the Apple App Store, you will need to submit privacy details about your app. On each app’s product page, users will be able to see the data the app may collect, and whether that data is linked to them or used to track them. Apps should be submitted to the App Store in line with Apple’s privacy guidelines.
The following sections describe how the data is captured by BugSnag and how its usage relates to Apple’s policies.
The use of BugSnag does not meet the criteria for optional disclosure. The data collected by BugSnag is not wholly provided by the user in the app interface, and the frequency of reporting cannot be guaranteed to be below a set threshold.
Therefore, you will need to consider the types of data that you are sending to BugSnag from your application when completing your app’s privacy details.
The automatically captured data page provides information on what data BugSnag captures by default, and guidance on preventing capture of each type of data. BugSnag can be configured to override any automatically captured data, and also send custom additional metadata. You should consider additional data you’ve configured BugSnag to send for your App Store privacy details.
The following table describes how Apple’s definition of data types relate to BugSnag’s automatically captured data, to aid providing privacy information for an app.
|Data||Automatically captured by BugSnag|
|Other user contact info||No|
|Health and Fitness|
|Other financial info||No|
|Emails or text messages||No|
|Photos or videos||No|
|Other user content||No|
|User ID||Yes. An overridable unique identifier is generated for the
|Device ID||Yes. An overridable unique identifier is generated for the
|Product interaction||Yes. Breadcrumbs are stored and sent with each event report. You can configure which breadcrumb types are captured on iOS, macOS, tvOS, React Native, Cocos2d-x, Expo, Electron, Unity, or Unreal Engine. You can discard or ammend breadcrumbs on iOS, macOS, tvOS, React Native, Cocos2d-x, Expo, Electron, or Unreal Engine with an
Sessions are tracked by default with the BugSnag Cocoa notifier. You can disable automatic session tracking with the
|Other usage data||No|
|Crash data||Yes. We also send “internal” crash reports when there is a crash in BugSnag library code. This can be disabled with the
|Other diagnostic data||No|
|Other data types||BugSnag additionally captures application information by default.|
SmartBear does not use event data from customer applications for any of the purposes outlined by Apple. We processes data on behalf of each BugSnag customer to provide data analytics about crashes and application stability to that customer (the data controller).
However, by using BugSnag, you may be using data in the ways described below.
|Data use||Applicable to your use of BugSnag?|
|Developer’s advertising or marketing||No|
|Analytics||You may consider that you use BugSnag for analytics purposes, such as planning new features, and measuring audience sizes.|
|App functionality||Yes. You can use BugSnag to minimize app crashes, and improve stability.|
If you are setting user data, then you need to be aware that all reports sent to BugSnag can be linked to that individual user. By default BugSnag captures a unique user ID (based on the device) so that reports from the same user can be linked even if no user data is associated with the reports.
This unique ID can be removed by setting
nil for each of the fields in setUser. Please note that there is also a
device.id field which stores the same UUID that should also be removed to unlink a user from a report.
Using BugSnag does not require user permission via the AppTrackingTransparency (ATT) framework as BugSnag does not track users according to Apple’s definition:
Apple will soon require usage of certain APIs to be declared through the required reason API to reduce the ability for developers to misuse them for device fingerprinting.
The BugSnag SDK uses some of these APIs and so the following reasons should be entered in the Privacy manifest for your app:
||We report the amount of time your app has spent in the foreground in
||We use the User Defaults API to store data between launches for inclusion in events. However we use
||disallowed||We currently use
|Our primary usage of
However we currently also use it to report