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

Add documentation on how to provide the Apple Privacy Manifest #20292

Merged
merged 16 commits into from
Mar 21, 2024

Conversation

mcumming
Copy link
Contributor

@mcumming mcumming commented Mar 12, 2024

From https://developer.apple.com/news/?id=3d8a9yyh

Starting March 13: If you upload a new or updated app to App Store Connect that uses an API requiring approved reasons, we'll will send you an email letting you know if you’re missing reasons in your app’s privacy manifest. This is in addition to the existing notification in App Store Connect.

Starting May 1: You’ll need to include approved reasons for the listed APIs used by your app’s code to upload a new or updated app to App Store Connect. If you’re not using an API for an allowed reason, please find an alternative. And if you add a new third-party SDK that’s on the list of commonly used third-party SDKs, these API, privacy manifest, and signature requirements will apply to that SDK. Make sure to use a version of the SDK that includes its privacy manifest and note that signatures are also required when the SDK is added as a binary dependency.

Document preview

fixes: #20059

docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
mcumming and others added 5 commits March 12, 2024 10:48
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
mcumming and others added 5 commits March 12, 2024 13:30
Co-authored-by: Haritha Mohan <harithamohan@microsoft.com>
Co-authored-by: Haritha Mohan <harithamohan@microsoft.com>
Co-authored-by: Haritha Mohan <harithamohan@microsoft.com>
Co-authored-by: Haritha Mohan <harithamohan@microsoft.com>
Copy link
Member

@jfversluis jfversluis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing work, lgtm!

Copy link
Member

@jfversluis jfversluis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found some (minor) things on a second pass

docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
Copy link
Member

@akoeplinger akoeplinger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a couple comments but looks good overall!

docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
**Note:** The above guidelines are provided for your convenience. It’s important that you review Apple’s documentation on [privacy manifest files][PrivacyManifestFiles] before creating a privacy manifest for your project.

**Important:**
The following information is provided based on Apple's documentation as of March 2024. It is recommended that you review Apple’s documentation on [privacy manifest files][PrivacyManifestFiles] when creating a privacy manifest for your project to ensure you are using the most recent guidelines. If you find any discrepancies in the information below, please [file a bug](https://github.com/dotnet/maui/issues) and include the API in question.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should the issue link point to xamarin-macios given that the file lives in that repo?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dalexsoto And I thought that starting with the .NET MAUI repository was best for issues since we are assuming most of the customers would be reporting for a .NET MAUI app.

docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
1. In the `Save As` dialog, leave the filename as `PrivacyInfo` as that is the required name for the file.
1. Click `Create` and close Xcode.
1. Use Finder to copy the `PrivacyInfo.xcprivacy` file from the Xcode project to your documents folder for now.
1. The Xcode project is no longer needed and can be deleted.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what the benefit of the detour through Xcode is, I tried it and it just generated the empty skeleton that you have as an example below here anyway.

I'd remove this and let the user start from the example that already has the reasons required by the runtime to simplify the guide.

docs/required-reasons-macios.md Outdated Show resolved Hide resolved
docs/required-reasons-macios.md Outdated Show resolved Hide resolved
docs/required-reasons-macios.md Outdated Show resolved Hide resolved
docs/required-reasons-macios.md Outdated Show resolved Hide resolved
docs/required-reasons-macios.md Outdated Show resolved Hide resolved
Comment on lines 230 to 238
1. Copy the `PrivacyInfo.xcprivacy` from your documents folder to the root folder of your .NET for tvOS project.
1. In your favorite text editor, edit the .NET for tvOS csproj project file.
1. Add the following elements to the bottom of the root `<Project>` element:
```xml
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tvos'">
<BundleResource Include="PrivacyInfo.xcprivacy" LogicalName="PrivacyInfo.xcprivacy" />
</ItemGroup>
```
This will package the file into the tvOS app at the root of the bundle.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same procedure as for iOS (putting in a Resources folder) didn't work for tvOS?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is no Resources folder in a tvOS app by default.

docs/apple-privacy-manifest.md Outdated Show resolved Hide resolved
docs/required-reasons-dotnet-maui.md Outdated Show resolved Hide resolved
docs/required-reasons-dotnet-maui.md Outdated Show resolved Hide resolved
docs/required-reasons-macios.md Outdated Show resolved Hide resolved
docs/required-reasons-bcl.md Outdated Show resolved Hide resolved
docs/required-reasons-bcl.md Outdated Show resolved Hide resolved
docs/required-reasons-bcl.md Outdated Show resolved Hide resolved
docs/required-reasons-bcl.md Outdated Show resolved Hide resolved
docs/required-reasons-bcl.md Outdated Show resolved Hide resolved
Co-authored-by: Alexander Köplinger <alex.koeplinger@outlook.com>
Co-authored-by: Rolf Bjarne Kvinge <rolf@xamarin.com>
@mcumming mcumming merged commit 4854f70 into xamarin:main Mar 21, 2024
6 checks passed
@mcumming mcumming deleted the apple-privacy-manifest branch March 21, 2024 11:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement support for Privacy Manifests
7 participants