Privacy Manifest¶
Understand what data RoadSaveKit collects, why it collects it, and what you must declare in your own app's privacy manifest.
Overview¶
Apple requires every third-party SDK distributed via Swift Package Manager or XCFramework to ship a PrivacyInfo.xcprivacy privacy manifest (mandatory since May 2024; App Store submissions that include SDKs without one are rejected). RoadSaveKit ships its manifest at Sources/RoadSaveKit/PrivacyInfo.xcprivacy inside the package.
This article explains what the manifest declares, why, and what you as a consumer must do in your own app.
What RoadSaveKit Collects¶
| Data type | Apple category | Linked to user? | Used for tracking? | Purpose |
|---|---|---|---|---|
| GPS coordinates, speed, bearing, horizontal accuracy | Precise Location | Yes | No | Trip detection; speed verification at crash time; crash evaluation payload sent to api.roadsave.co.za |
| 3-axis accelerometer readings | Other Diagnostic Data | Yes | No | In-vehicle crash detection algorithm; ZIP archive uploaded to api.roadsave.co.za for server-side evaluation |
| Activity type (stationary / walking / automotive), pedometer step counts | Other Diagnostic Data | Yes | No | Trip start and stop detection; automotive-mode protection in the step counter |
All data is linked to the clientUserID value you supply in RoadSaveConfiguration. None of it is used to track users across apps or websites owned by other parties.
System APIs Accessed¶
| API category | Apple reason code | Usage |
|---|---|---|
| User Defaults | CA92.1 — access info from the same app |
RoadSaveKit reads back configuration it previously persisted to UserDefaults across four keys: crash parameters fallback, trip verification grace count, offline crash flag, and the offline trip counter |
What You Must Do¶
1. Add your own PrivacyInfo.xcprivacy¶
Even though RoadSaveKit ships its own privacy manifest, App Store policy requires your app to declare the data types it collects. Because RoadSaveKit collects location and diagnostic data on your behalf, your app's manifest must also include those types.
Add or merge the following entries into your app target's PrivacyInfo.xcprivacy:
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypePreciseLocation</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<true/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeOtherDiagnosticData</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<true/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
</array>
</dict>
</array>
If your app already declares NSPrivacyCollectedDataTypePreciseLocation for its own use, add NSPrivacyCollectedDataTypePurposeAnalytics to its purposes array (if not already present) rather than creating a duplicate entry.
2. Add the required background mode and permission strings¶
RoadSaveKit requires the location background mode and the NSLocationAlwaysAndWhenInUseUsageDescription permission key. See Getting Started for the full setup checklist.
3. App Privacy nutrition label¶
When you submit your app on App Store Connect, the App Privacy section will ask you about data collection. Declare Precise Location and Other Diagnostic Data under the appropriate data types. Mark both as linked to the user and not used for tracking.
Data Destination¶
All data collected by RoadSaveKit is transmitted to:
This endpoint is operated by CrashDetech (Pty) Ltd, trading as RoadSave. For questions about data handling, retention, or deletion, contact info@roadsave.co.za.
Important: The backend is actively migrating to a modernised API. A future minor release (4.1.x) will update the default base URL to
https://api.roadsave.co.za/v2/once the backend team confirms all endpoints are available. The base URL is also configurable viaRoadSaveConfiguration/baseURLif your integration requires a custom endpoint.
SDK Privacy Manifest Location¶
The manifest file ships with the SDK package at:
Xcode automatically picks it up when you add RoadSaveKit via Swift Package Manager. When consuming the .xcframework release bundle, the manifest is embedded inside the framework bundle at RoadSaveKit.framework/PrivacyInfo.xcprivacy.