libgdx / gdx-liftoff

A modern setup tool for libGDX Gradle projects
Apache License 2.0
524 stars 48 forks source link

Adding PrivacyInfo.xcprivacy required by Apple beginning May 1, 2024. #152

Closed auraxangelic closed 5 months ago

auraxangelic commented 5 months ago

Adding PrivacyInfo.xcprivacy required by Apple beginning May 1, 2024.

tommyettinger commented 5 months ago

We discussed this on the Discord's ios topic; for anyone not familiar, there are some significant changes to Apple's App Store policies for new apps (and maybe also updates to existing ones). I believe these privacy-related files should be enough for anything Liftoff can generate, but if someone adds an ad network or multiplayer service, then they would need to modify the files. I'm going to merge this now; it seems rather important for iOS projects, and hard to get right without some kind of structure provided. It also looks like new projects made without this type of privacy declaration are not going to be accepted until they add one, so even if there could be some error or omission in this version, it's much better than not having any declaration.

auraxangelic commented 5 months ago

Makes sense. I think they're specifically concerned with not leaking data from the device. The 3 iOS API declaration errors that Apple gave are for accessing the device's system time, checking device disk space, and getting file timestamps, which all are used by super koalio (not necessarily used by koalio itself, but by classes bundled with it). If a developer calls any system calls beyond those, they'd have to add more declarations to the file.

obigu commented 3 months ago

Why is this necessary? A default project should not need any privacy declaration at all.

EDIT: I see why in my case I have never had to add these. When building, all PrivacyInfo.xcprivacy files from all SDKs as well as the app are merged together. Probably one of the SDKs I use is already adding some declarations required and this may be why @auraxangelic came across this issue for a simple app.