PostHog / posthog-ios

PostHog iOS SDK
https://posthog.com/docs/libraries/ios
MIT License
28 stars 37 forks source link

Describing use of required reason API #109

Closed hsingh-texada closed 4 months ago

hsingh-texada commented 4 months ago

Problem Statement

Starting spring of 2024, Apple will be mandating the use of xcprivacy file to be included by all the libraries. The relevant Apple requirement/documentation is as follows: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api

Can you please provide timelines on when this would be resolved, as it will directly impact our AppStore submissions.

Solution Brainstorm

No response

marandaneto commented 4 months ago

We do use the https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278401

https://developer.apple.com/documentation/bundleresources/privacy_manifest_files says:

You only need to supply NSPrivacyAccessedAPITypes for apps and third-party SDKs on iOS, iPadOS, tvOS, visionOS, and watchOS.

In this case, we just need to set the CA92.1.

hsingh-texada commented 4 months ago

Hi,

Reopening the ticket as we are using SPM and the privacy file did not make it through to our archive. I think you need to add the privacy file to the package.swift file as follows.

    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages this package depends on.
        .target(
            name: "PostHog",
            path: "PostHog",
            resources: [
                .copy("PrivacyInfo.xcprivacy")
            ]
        ),
        .testTarget(
            name: "PostHogTests",
            dependencies: [
                "PostHog",
                "Quick",
                "Nimble",
                "OHHTTPStubs",
                .product(name: "OHHTTPStubsSwift", package: "OHHTTPStubs"),
            ],
            path: "PostHogTests"
        ),
    ]

Please test before closing as follows:

To generate a privacy report, Archive the app which consumes the library using SPM, and then in Xcode -> Window -> Organizer -> Under Archives, right click on the archive -> Generate Privacy Report.