8.1 C
London
Friday, March 29, 2024

ios – Why Apple retains warning even after I dealt with the brand new privateness manifest rule?


Apple’s message:

ITMS-91053: Lacking API declaration - Your appā€™s code within the ā€œ{app identify}ā€ file references a number of APIs that require causes, together with the next API classes: NSPrivacyAccessedAPICategoryFileTimestamp. Whereas no motion is required right now, beginning Might 1, 2024, if you add a brand new app or app replace, it's essential to embrace a NSPrivacyAccessedAPITypes array in your appā€™s privateness manifest to supply authorised causes for these APIs utilized by your appā€™s code. For extra particulars about this coverage, together with a listing of required cause APIs and authorised causes for utilization, go to: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

ITMS-91053: Lacking API declaration - Your appā€™s code within the ā€œ{app identify}ā€ file references a number of APIs that require causes, together with the next API classes: NSPrivacyAccessedAPICategoryDiskSpace. Whereas no motion is required right now, beginning Might 1, 2024, if you add a brand new app or app replace, it's essential to embrace a NSPrivacyAccessedAPITypes array in your appā€™s privateness manifest to supply authorised causes for these APIs utilized by your appā€™s code. For extra particulars about this coverage, together with a listing of required cause APIs and authorised causes for utilization, go to: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

ITMS-91053: Lacking API declaration - Your appā€™s code within the ā€œ{app identify}ā€ file references a number of APIs that require causes, together with the next API classes: NSPrivacyAccessedAPICategorySystemBootTime. Whereas no motion is required right now, beginning Might 1, 2024, if you add a brand new app or app replace, it's essential to embrace a NSPrivacyAccessedAPITypes array in your appā€™s privateness manifest to supply authorised causes for these APIs utilized by your appā€™s code. For extra particulars about this coverage, together with a listing of required cause APIs and authorised causes for utilization, go to: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

ITMS-91053: Lacking API declaration - Your appā€™s code within the ā€œ{app identify}ā€ file references a number of APIs that require causes, together with the next API classes: NSPrivacyAccessedAPICategoryUserDefaults. Whereas no motion is required right now, beginning Might 1, 2024, if you add a brand new app or app replace, it's essential to embrace a NSPrivacyAccessedAPITypes array in your appā€™s privateness manifest to supply authorised causes for these APIs utilized by your appā€™s code. For extra particulars about this coverage, together with a listing of required cause APIs and authorised causes for utilization, go to: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

So, I did the next to sort out the difficulty:

  • Improve third get together SDKs which are listed within the required record of Apple in order that they’ve their manifest.
  • Out of the 4 API classes, solely NSPrivacyAccessedAPICategoryUserDefaults can also be wanted on the app aspect (as my app makes use of UserDefaults), so I added it to the app’s PrivacyInfo.xcprivacy.

Nevertheless, after I submitted the brand new app, Apple nonetheless responded with the identical warning. My understanding is privateness manifests of the App and SDKs are merged into one (or equal). Is that right? What am I lacking then?

Swift Packages and variations

The log from the xcodebuild

[08:11:49]: ā–ø Resolved supply packages:
[08:11:49]: ā–ø   GoogleAppMeasurement: https://github.com/google/GoogleAppMeasurement.git @ 10.22.0
[08:11:49]: ā–ø   GoogleDataTransport: https://github.com/google/GoogleDataTransport.git @ 9.4.0
[08:11:49]: ā–ø   GTMSessionFetcher: https://github.com/google/gtm-session-fetcher.git @ 3.3.1
[08:11:49]: ā–ø   UIPiPView: [emailĀ protected]:torufuruya/UIPiPView.git @ b3183e7
[08:11:49]: ā–ø   CwlCatchException: https://github.com/mattgallagher/CwlCatchException.git @ 2.1.1
[08:11:49]: ā–ø   GoogleSignIn: https://github.com/google/GoogleSignIn-iOS @ 7.1.0
[08:11:49]: ā–ø   CwlPreconditionTesting: https://github.com/mattgallagher/CwlPreconditionTesting.git @ 2.1.0
[08:11:49]: ā–ø   AudioKit: https://github.com/AudioKit/AudioKit.git @ 5.5.7
[08:11:49]: ā–ø   nanopb: https://github.com/firebase/nanopb.git @ 2.30910.0
[08:11:49]: ā–ø   AppCheck: https://github.com/google/app-check.git @ 10.18.0
[08:11:49]: ā–ø   Pulse: https://github.com/kean/Pulse @ 1.1.0
[08:11:49]: ā–ø   Fast: https://github.com/Fast/Fast.git @ 6.1.0
[08:11:49]: ā–ø   SwiftlySearch: https://github.com/thislooksfun/SwiftlySearch.git @ 1.2.5
[08:11:49]: ā–ø   GoogleUserMessagingPlatform: https://github.com/googleads/swift-package-manager-google-user-messaging-platform.git @ 2.3.0
[08:11:49]: ā–ø   swift-video-generator: https://github.com/dev-labs-bg/swift-video-generator.git @ 1.4.1
[08:11:49]: ā–ø   AdvancedScrollView: https://github.com/dmytro-anokhin/advanced-scrollview.git @ 0.0.6
[08:11:49]: ā–ø   GTMAppAuth: https://github.com/google/GTMAppAuth.git @ 4.1.1
[08:11:49]: ā–ø   Firebase: https://github.com/firebase/firebase-ios-sdk.git @ 10.22.0
[08:11:49]: ā–ø   SwiftyStoreKit: https://github.com/bizz84/SwiftyStoreKit.git @ 0.16.4
[08:11:49]: ā–ø   Mocker: https://github.com/WeTransfer/Mocker.git @ 3.0.1
[08:11:49]: ā–ø   leveldb: https://github.com/firebase/leveldb.git @ 1.22.3
[08:11:49]: ā–ø   Guarantees: https://github.com/google/guarantees.git @ 2.4.0
[08:11:49]: ā–ø   abseil: https://github.com/google/abseil-cpp-binary.git @ 1.2022062300.1
[08:11:49]: ā–ø   URLImage: https://github.com/dmytro-anokhin/url-image @ 3.1.1
[08:11:49]: ā–ø   AppAuth: https://github.com/openid/AppAuth-iOS.git @ 1.7.3
[08:11:49]: ā–ø   SwiftProtobuf: https://github.com/apple/swift-protobuf.git @ 1.25.2
[08:11:49]: ā–ø   swift-log: https://github.com/apple/swift-log.git @ 1.4.4
[08:11:49]: ā–ø   gRPC: https://github.com/google/grpc-binary.git @ 1.49.2
[08:11:49]: ā–ø   Mantis: https://github.com/guoyingtao/Mantis.git @ 2.7.0
[08:11:49]: ā–ø   Get: https://github.com/kean/Get.git @ 1.0.4
[08:11:49]: ā–ø   Fakery: https://github.com/vadymmarkov/Fakery @ 5.1.0
[08:11:49]: ā–ø   Nimble: https://github.com/Fast/Nimble.git @ 11.2.1
[08:11:49]: ā–ø   GoogleMobileAds: https://github.com/googleads/swift-package-manager-google-mobile-ads.git @ 11.2.0
[08:11:49]: ā–ø   GoogleUtilities: https://github.com/google/GoogleUtilities.git @ 7.13.1
[08:11:49]: ā–ø   ImagePickerView: https://github.com/ralfebert/ImagePickerView @ 0.5.0
[08:11:49]: ā–ø   InteropForGoogle: https://github.com/google/interop-ios-for-google-sdks.git @ 100.0.0

SDKs declaring the reported API classes

The consequence I grep the API classes immediately within the swift package deal checkout folder: ~/Library/Developer/Xcode/DerivedData/{app identify}/SourcePackages/checkouts/

NSPrivacyAccessedAPICategoryFileTimestamp

āžœ  checkouts grep NSPrivacyAccessedAPICategoryFileTimestamp . -lr
./firebase-ios-sdk/FirebaseDynamicLinks/Sources/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/Crashlytics/Sources/PrivacyInfo.xcprivacy
./grpc-binary/grpcpp-Wrapper/Sources/PrivacyInfo.xcprivacy
./grpc-binary/grpc-Wrapper/Sources/PrivacyInfo.xcprivacy
./grpc-binary/openssl-grpc-Wrapper/Sources/PrivacyInfo.xcprivacy
./gtm-session-fetcher/Sources/LogView/Sources/PrivacyInfo.xcprivacy
./GoogleUtilities/GoogleUtilities/Privateness/Sources/PrivacyInfo.xcprivacy

NSPrivacyAccessedAPICategoryDiskSpace

No SDKs. It will need to have used within the Firebase Crashlytics nevertheless it appears to be eliminated within the newest model.

# 10.22.0
- [fixed] Drive validation or rotation of FIDs for FirebaseSessions.
- [changed] Eliminated calls to statfs within the Crashlytics SDK to adjust to Apple Privateness Manifests. This transformation removes help for amassing Disk House Free in Crashlytics stories.

I confirmed no different APIs that require this coverage listed within the official doc (e.g. statfs) have been utilized in any SDKs.

NSPrivacyAccessedAPICategorySystemBootTime

āžœ  checkouts grep NSPrivacyAccessedAPICategorySystemBootTime . -lr
./firebase-ios-sdk/Crashlytics/Sources/PrivacyInfo.xcprivacy
./grpc-binary/grpcpp-Wrapper/Sources/PrivacyInfo.xcprivacy
./grpc-binary/grpc-Wrapper/Sources/PrivacyInfo.xcprivacy
./grpc-binary/openssl-grpc-Wrapper/Sources/PrivacyInfo.xcprivacy

NSPrivacyAccessedAPICategoryUserDefaults

āžœ  checkouts grep NSPrivacyAccessedAPICategoryUserDefaults . -lr
./GoogleSignIn-iOS/GoogleSignIn/Sources/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/FirebaseDynamicLinks/Sources/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/Crashlytics/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/FirebaseCore/Inside/Sources/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/FirebaseCore/Sources/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/FirebaseAuth/Sources/Sources/PrivacyInfo.xcprivacy
./firebase-ios-sdk/FirebaseRemoteConfig/Swift/Sources/PrivacyInfo.xcprivacy
./gtm-session-fetcher/Sources/Core/Sources/PrivacyInfo.xcprivacy
./GoogleUtilities/GoogleUtilities/Privateness/Sources/PrivacyInfo.xcprivacy

Latest news
Related news

LEAVE A REPLY

Please enter your comment!
Please enter your name here