We are developing an Apple Watch and iPhone training app and would like guidance on the required-reason API requirements for sharing a timing relationship between the two apps.
On Apple Watch, we record Core Motion samples and read ProcessInfo.processInfo.systemUptime when each sample callback arrives. The paired iPhone uses timing information to analyze sample ordering and freshness.
The two values relevant to this question are:
- Measurement timestamp: CMLogItem.timestamp associated with the Core Motion sample on Apple Watch.
- Callback observation time: systemUptime read by the Watch app when it receives that sample’s callback.
The proposed interval is the callback observation time minus the measurement timestamp, calculated on the Watch. Both endpoints are on the Watch. The iPhone is the intended recipient of the interval; its receipt time is not an endpoint of this calculation.
For illustration only, synthetic values of 1,000.000 seconds for the measurement timestamp and 1,000.020 seconds for the callback observation time would produce a proposed interval of 0.020 seconds. These are not real measurements. This arithmetic example does not establish clock compatibility or permission to transmit the result.
Apple’s documentation describes CMLogItem.timestamp as seconds since device boot. The System Boot Time required-reason API list includes systemUptime and mach_absolute_time(). Reason 35F9.1 permits certain elapsed-time measurements and includes an exception for elapsed time between events that occurred within the app.
Our questions are:
-
Is CMLogItem.timestamp itself covered by the System Boot Time required-reason API category? We do not see this property explicitly included in the published list.
-
Under reason 35F9.1, may the interval between a Core Motion measurement timestamp and the app’s callback observation time be sent from Apple Watch to its paired iPhone for analysis? Specifically, does it qualify for the exception for elapsed time between events that occurred within the app, given that the measurement time comes from Core Motion?
-
If not, is there an approved way to represent this timing relationship while preserving sample ordering and freshness analysis? Which timing information may be transferred, and which approved reason, if any, applies?
We are not reporting an Apple API malfunction. We are asking how to implement this use in accordance with the privacy requirements.
Our focused local Xcode sample uses synthetic values only. It does not collect real motion data or transmit data between devices.