Data collection in iOS
General information about data collection can be found here.
The article below describes types and internal structure of the data collected from iOS applications.
Performance monitor collects the following metrics:
Average CPU usage for all cores available
Resident size for the app process
It consists of two metrics: download and upload speed calculated as average for WiFi and WWAN interfaces
Bytes read and written
Number of frames per second calculated by
CADisplayLinkattached to main run loop
UIDeviceclass. Not applicable for AppleTV.
HTTP monitor intercepts all requests made via
NSURLSession and tracks their responses, execution time etc. Please note that any network activity outside
NSURLSession APIs is not tracked at the moment.
We discover all databases in your app and provide their contents and schemes.
We identify database files by their extension. The following extensions are treated as database files:
The following directories are scanned:
For now we support screenshots only for one window. It means you will not get a screenshot of the window displayed at Apple TV if your app uses mirroring.
Log monitor intercepts data written by app to stdout and stderr. It tracks all calls to
print() and other
verbose by default.
We also provide integration with CocoaLumberjack library for better log level separation. Log monitor intercepts
DDLog() calls separately and sends them along with the log level you used.
Location monitor gets a location object received by
LocationManager and sends it to backend. The resulting position is displayed on a map on frontend.
It also allows to request location services permissions from the frontend. We never request them without explicit user command, so until your app has started a location manager, location tracking will not be available.
It includes your app info.plist contents, CLI arguments passed to the app on launch, some information about device, and environment variables defined in your project.
Monitor tracks analytic systems initialization and usage in your app. Currently supported analytic systems are Google Analytics, Firebase, Mixpanel, Flurry, Adobe and Fabric (Answers). Once you start analytic SDK from your code AppSpector starts watching events you send. Important to remember that we track data when you send it to analytic SDK and not when it was sent via network. That's why due to throttling settings or networking issues you can see some events in the analytic monitor but still miss them in your GA dashboard. The monitor is intended to debug your code and not the analytic SDK itself.
CoreData monitor injects deeply in CoreData stack and allows to track all data in your stores, their schemes and settings. Please note that CoreData monitor could possibly slow down your CoreData operations a bit.
Monitor tracks default notification center, intercepts all notification subscriptions and dispatches along with notification user info.
Updated over 4 years ago