Skip to content

Conversation

@tgoyne
Copy link
Member

@tgoyne tgoyne commented Jan 9, 2024

Since we don't include the analytics code in builds for the app store, the only thing we need to declare is that we call fstat() on files in the app container, which core uses internally to check the size of Realm files. This is assuming that if the app logs into Atlas that's something that the app itself has to declare rather than us, as we don't automatically talk to the server on our own behalf.

The CocoaPods bundling might not actually work. This is the approach that most of the SDKs on the mandatory privacy manifest list are taking, but since Apple isn't actually checking the manifests yet no one knows if they'll accept this fairly weird way of bundling the xcprivacy file. The less weird way breaks building pods as non-framework static libraries.

Fixes #8428.

tgoyne added 2 commits January 8, 2024 20:39
Since we don't include the analytics code in builds for the app store, the only
thing we need to declare is that we call fstat() on files in the app container,
which core uses internally to check the size of Realm files. This is assuming
that if the app logs into Atlas that's something that the app itself has to
declare rather than us, as we don't automatically talk to the server on our own
behalf.

The CocoaPods bundling might not actually work. This is the approach that most
of the SDKs on the mandatory privacy manifest list are taking, but since Apple
isn't actually checking the manifests yet no one knows if they'll accept this
fairly weird way of bundling the xcprivacy file. The less weird way breaks
building pods as non-framework static libraries.
@tgoyne tgoyne self-assigned this Jan 9, 2024
@tgoyne tgoyne requested a review from dianaafanador3 January 9, 2024 16:00
Copy link
Contributor

@dianaafanador3 dianaafanador3 left a comment

Choose a reason for hiding this comment

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

LGTM! Just some minor questions

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not have just one manifest for both frameworks? Also, I don't think is required to have it in the framework folder, and seems a little bit distracting to have this next to the implementation files.

Copy link
Member Author

Choose a reason for hiding this comment

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

SPM requires it to be within the source root for the target.

'OTHER_LDFLAGS' => '$(REALM_LD_CLASSIC)',
}
s.preserve_paths = %w(include scripts)
s.resource_bundles = {'realm_objc_privacy' => ['Realm/PrivacyInfo.xcprivacy']}
Copy link
Contributor

Choose a reason for hiding this comment

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

https://github.com/SDWebImage/SDWebImage/pull/3649/files What I'm seeing in some other SDKs is they use the name of the framework as the key, so shouldn't be
s.resource_bundles = {'Realm' => ['Realm/PrivacyInfo.xcprivacy']}, or maybe it is irrelevant given that we don't know if it is going to even work

Copy link
Member Author

Choose a reason for hiding this comment

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

I based this on what Flutter is doing since they appeared to put a bunch of effort into looking into things.

Choose a reason for hiding this comment

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

What I'm seeing in some other SDKs is they use the name of the framework as the key

FYI, see this comment for the relevant discussion about why we aren't doing that.

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
Copy link
Contributor

Choose a reason for hiding this comment

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

Any reason for adding this new schema to the installation examples project

Copy link
Member Author

Choose a reason for hiding this comment

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

Running the installation test locally was sometimes failing due to the App scheme not existing.

@tgoyne tgoyne merged commit 65269e4 into master Jan 12, 2024
@tgoyne tgoyne deleted the tg/privacy-manifest branch January 12, 2024 20:33
dianaafanador3 pushed a commit that referenced this pull request Jan 18, 2024
Since we don't include the analytics code in builds for the app store, the only
thing we need to declare is that we call fstat() on files in the app container,
which core uses internally to check the size of Realm files. This is assuming
that if the app logs into Atlas that's something that the app itself has to
declare rather than us, as we don't automatically talk to the server on our own
behalf.

The CocoaPods bundling might not actually work. This is the approach that most
of the SDKs on the mandatory privacy manifest list are taking, but since Apple
isn't actually checking the manifests yet no one knows if they'll accept this
fairly weird way of bundling the xcprivacy file. The less weird way breaks
building pods as non-framework static libraries.
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Privacy Manifest

4 participants