Skip to content
DeveloperMemos

Privacy Manifest Declaration for NSPrivacyAccessedAPICategorySystemBootTime(Firebase iOS SDK)

Firebase, iOS SDK, Privacy, Manifest, Privacy Manifest1 min read

As of May 2024, Apple has introduced a new requirement for developers to use a Privacy Manifest when accessing certain permissions and APIs in their apps. One such case involves the usage of mach_absolute_time, which was used in the Firebase iOS SDK. In this article, we'll explore the issue and discuss the solution.

The Issue

Developers integrating FirebaseCrashlytics into their iOS apps encountered an issue related to privacy manifest requirements. Using the Firebase SDK was causing declaration requirements for NSPrivacyAccessedAPICategorySystemBootTime. The root cause of this was traced back to the usage of mach_absolute_time in the FIRCLSProfiling.c inside the SDK.

New Version(10.24.0)

To address this issue, it looks like the Firebase SDK maintainers took action. In pull request #12664, they removed all usages of mach_absolute_time. This change was included in the 10.24.0 release of the Firebase iOS SDK.

How to Resolve

If you encounter this issue in your app, follow these steps:

  1. Update the SDK: Ensure that you are using the latest version of the Firebase iOS SDK (10.24.0 or newer). By doing so, you'll benefit from the removal of mach_absolute_time, which eliminates the need for declaring NSPrivacyAccessedAPICategorySystemBootTime.

  2. Dependency Management:

    • Swift Package Manager: If you're using Swift Package Manager, update your Package.resolved(just making the changes in XCode is the easiest way to do this) file to reflect the correct version.
    • CocoaPods: For CocoaPods users, verify your Podfile.lock.

Summary

The issue has been resolved in Firebase iOS SDK 10.24.0! Upgrading to this version ensures compliance with Apple's privacy manifest requirements(specifically for NSPrivacyAccessedAPICategorySystemBootTime).