siteline / swiftui-introspect

Introspect underlying UIKit/AppKit components from SwiftUI
MIT License
5.68k stars 352 forks source link

privacy manifest required #406

Closed frankois1234 closed 6 months ago

frankois1234 commented 8 months ago

See https://github.com/pointfreeco/swift-composable-architecture/discussions/2559#discussioncomment-8005185

I don't believe SwiftUIIntrospect leverages any APIs that require a privacy manifest, and it definitely doesn't collect any user data. Correct me if I'm wrong though.

Originally posted by @davdroman in https://github.com/siteline/swiftui-introspect/discussions/398#discussioncomment-8262451

frankois1234 commented 8 months ago

Sorry, but even the SDK collect no data, the sdk must contain the manifest which say explicitly it doesn't collect data. Even RxSwift or MBProgressHUD must contain the manifest.

See the list https://developer.apple.com/support/third-party-SDK-requirements/

iharkatkavets commented 8 months ago

The library should provide Privacy Manifest if it collects information or access "Required Reasons API"

benMohamed commented 8 months ago

I'm getting emails back from Apple about this because your library is not compliant.

ITMS-91053: Missing API declaration - Your app’s code in the “YourApp” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryUserDefaults. 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.

davdroman commented 8 months ago

UserDefaults is not used anywhere in this library.

benMohamed commented 8 months ago

@davdroman to reproduce it: create an empty project, integrate SwiftUI-Introspect, and then attempt to publish it. Within a few minutes, you will automatically receive that email from Apple

Muhammadbarznji commented 6 months ago

@davdroman, you're absolutely right. While the core functionality of the package doesn't rely on UserDefaults, I discovered that the SimulatorStatusMagic dependency actually utilizes UserDefaults.

davdroman commented 6 months ago

Thanks for the tip @Muhammadbarznji, I opened #411 to get rid of SSM.

davdroman commented 6 months ago

The new 1.1.4 release drops SSM so SwiftUIIntrospect should no longer require a privacy manifest.

chrisvasselli commented 6 months ago

@davdroman maintainer of SSM here, I'm just getting into this via a ping from @Muhammadbarznji (thanks again!). My assumption is that as a framework that's not shipped with the product, but just used for testing, I don't need to worry about the privacy manifest. Does that sound right? Was your fix just to remove it from release builds of SwiftUIIntrospect? Trying to figure out if I need to do anything more here.