Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NSPrivacyAccessedAPICategoryFileTimestamp & NSPrivacyAccessedAPICategoryDiskSpace #27677

Closed
yachtwave opened this issue Mar 14, 2024 · 9 comments
Labels
incomplete issue: missing or invalid repro A minimal reproducible example is required for most issues

Comments

@yachtwave
Copy link

yachtwave commented Mar 14, 2024

Minimal reproducible example

My app contains the "Appsflyer SDK" if that is causing this.

What platform(s) does this occur on?

iOS

Did you reproduce this issue in a development build?

Yes

Summary

Starting today (3/14/2024) apple is sending an email when publishing a new version of an app that complains about the NSPrivacyAccessedAPICategoryDiskSpace & NSPrivacyAccessedAPICategoryFileTimestamp - ITMS-91053: Missing API declaration (See email message below). How can we set this with Expo? They will no longer accept the builds after May 1st.

ITMS-91053: Missing API declaration - Your app’s code in the “YachtWave” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryDiskSpace. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

ITMS-91053: Missing API declaration - Your app’s code in the “YachtWave” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryFileTimestamp. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.

Environment

expo-env-info 1.2.0 environment info:
System:
OS: macOS 14.4
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.11.0 - /usr/local/bin/node
Yarn: 1.22.22 - /usr/local/bin/yarn
npm: 10.5.0 - /usr/local/bin/npm
SDKs:
iOS SDK:
Platforms: DriverKit 23.4, iOS 17.4, macOS 14.4, tvOS 17.4, visionOS 1.1, watchOS 10.4
IDEs:
Android Studio: 2023.2 AI-232.10227.8.2321.11479570
Xcode: 15.3/15E204a - /usr/bin/xcodebuild
npmPackages:
@expo/metro-config: ~0.17.6 => 0.17.6
expo: ^50.0.13 => 50.0.13
metro: ^0.80.6 => 0.80.6
react: 18.2.0 => 18.2.0
react-native: 0.73.4 => 0.73.4
npmGlobalPackages:
eas-cli: 7.5.0
Expo Workflow: managed

Expo Doctor Diagnostics

✔ Check Expo config for common issues
✔ Check package.json for common issues
✔ Check native tooling versions
✔ Check dependencies for packages that should not be installed directly
✔ Check for common project setup issues
✔ Check for issues with metro config
✔ Check for legacy global CLI installed locally
✔ Check that native modules do not use incompatible support packages
✔ Check npm/ yarn versions
✔ Check Expo config (app.json/ app.config.js) schema
✔ Check that packages match versions required by installed Expo SDK
✔ Check that native modules use compatible support package versions for installed Expo SDK

Didn't find any issues with the project!

@yachtwave yachtwave added the needs validation Issue needs to be validated label Mar 14, 2024
@expo-bot expo-bot added incomplete issue: missing or invalid repro A minimal reproducible example is required for most issues and removed needs validation Issue needs to be validated labels Mar 14, 2024
@expo-bot
Copy link
Collaborator

Hi there! It looks like your issue requires a minimal reproducible example, but it is invalid or absent. Please prepare such an example and share it in a new issue.

The best way to get attention to your issue is to provide a clean and easy way for a developer to reproduce the issue on their own machine. Please do not provide your entire project, or a project with more code than is necessary to reproduce the issue.

A side benefit of going through the process of narrowing down the minimal amount of code needed to reproduce the issue is that you may get lucky and discover that the bug is due to a mistake in your application code that you can quickly fix on your own.

Resources

Common concerns

"I've only been able to reproduce it in private, proprietary code"

You may not have spent enough time narrowing down the root cause of the issue. Try out the techniques discussed in this manual debugging guide to learn how to isolate the problem from the rest of your codebase.

"I didn't have time to create one"

That's understandable, it can take some time to prepare. We ask that you hold off on filing an issue until you are able to fully complete the required fields in the issue template.

"You can reproduce it by yourself by creating a project and following these steps"

This is useful knowledge, but it's still valuable to have the resulting project that is produced from running the steps, where you have verified you can reproduce the issue.

@SaladDays831
Copy link

I'm also running into this
It seems like the Appsflyer docs state that they use 3 of the 4 APIs that Apple is complaining to me about
https://support.appsflyer.com/hc/en-us/articles/21677433322641-Privacy-Manifest

I assume the Appsflyer doc needs to be updated to also include NSPrivacyAccessedAPICategoryDiskSpace

@phil-hudson
Copy link

Also getting this and not using AppsFlyer - I assume this is a general Expo issue?

@mluiten
Copy link

mluiten commented Mar 15, 2024

Seems like a duplicate of #27678, although not specifically about Appsflyer.

Expo team (and component authors) say they working on it and should have a fix before the deadline. Although if it's Appsflyer that has a react-native / expo package, it might be up to them to add a privacy manifest to their pods?

@SaladDays831
Copy link

Oh lol I thought this was an issue in the AppsFlyer GitHub 😅

It's true that they have to add the xcprivacy file to their SDK and they mentioned 2w ago that it's gonna be included in the next release, can't find the issue I saw this under though

@butri71
Copy link

butri71 commented Mar 26, 2024

Did a release yesterday on SDK 49 and getting the same warning message. I'm curious to see what fix for expo will look like since it'd be too late to include it in a new SDK since deadline is May 2024

@VadymBezsmertnyi
Copy link

I also received the 'happiness letter'; did anyone find a solution for Expo?

@timknapp12
Copy link

I too am using EAS build and got an email from Apple on my last build stating that in May I will need to correct the issues with: NSPrivacyAccessedAPICategoryUserDefaults, NSPrivacyAccessedAPICategorySystemBootTime, NSPrivacyAccessedAPICategoryDiskSpace, NSPrivacyAccessedAPICategoryFileTimestamp. I would love to not have to eject from expo to comply with this

@timknapp12
Copy link

Looks like this issue has more details: #27796

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
incomplete issue: missing or invalid repro A minimal reproducible example is required for most issues
Projects
None yet
Development

No branches or pull requests

8 participants