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

[3.x.x] Update privacy manifests and add 2 more #1392

Merged
merged 3 commits into from Mar 25, 2024

Conversation

nan-li
Copy link
Contributor

@nan-li nan-li commented Mar 25, 2024

Description

One Line Summary

Update the 2 existing manifests for OneSignalFramework and OneSignalExtension as targets, and add 2 more manifests for Core and Outcomes.

Details

Motivation

So SDK consumers can have privacy manifest support as Third-party privacy manifests will be required by Apple.

Previously, they are not added to the other targets of Core, Outcomes as these targets are already accounted for by inclusion in the umbrella OneSignalFramework target. App developers do not import these smaller modules directly but only via OneSignalFramework.

However, Apple has called out all 4 player model frameworks under "SDKs that require a privacy manifest and signature" so they may be doing some detection and expect all 4 to have privacy manifests (see https://developer.apple.com/support/third-party-SDK-requirements).

SDKs that require a privacy manifest and signature
The following are commonly used SDKs in apps on the App Store. Starting in spring 2024, you must include the privacy manifest for any SDK listed below when you submit new apps in App Store Connect that include those SDKs... Any version of a listed SDK, as well as any SDKs that repackage those on the list, are included in the requirement.
...
OneSignal
OneSignalCore
OneSignalExtension
OneSignalOutcomes

They are added in this PR so we don't have to go back and re-release player model SDKs in case.

OneSignalOutcomes - uses Product Interaction and User Defaults
OneSignalCore - uses User Defaults

Scope

Privacy manifest

Testing

Manual testing

iPhone 13 with ios 17.4

  1. Build all frameworks
  2. Add via pods to another application
  3. Archive the application
  4. View the generated privacy manifest
    See PDF report generated

Affected code checklist

  • Notifications
    • Display
    • Open
    • Push Processing
    • Confirm Deliveries
  • Outcomes
  • Sessions
  • In-App Messaging
  • REST API requests
  • Public API changes

Checklist

Overview

  • I have filled out all REQUIRED sections above
  • PR does one thing
  • Any Public API changes are explained in the PR details and conform to existing APIs

Testing

  • I have included test coverage for these changes, or explained why they are not needed
  • All automated tests pass, or I explained why that is not possible
  • I have personally tested this on my device, or explained why that is not possible

Final pass

  • Code is as readable as possible.
  • I have reviewed this PR myself, ensuring it meets each checklist item

This change is Reviewable

* Added the 2 existing Privacy Manifests to targets `OneSignalFramework` and `OneSignalExtension`
* This is needed for SDK consumers to get the privacy manifests included in their report.
* Apple docs has called out all 4 player model modules in their "SDKs that require a privacy manifest and signature" (https://developer.apple.com/support/third-party-SDK-requirements/)
- OneSignal
- OneSignalCore
- OneSignalExtension
- OneSignalOutcomes

* Since we are making a change to the other 2 existing manifest files, let's add manifest files for all the frameworks in case we may be required to update the player model SDK again due to them missing from Core and Outcomes
* Apparently `NSPrivacyCollectedDataTypes` needs to be in the privacy manifest for Core even though the framework doesn't use any.
* The generated report would say "Missing an expected key: 'NSPrivacyCollectedDataTypes' YourApp.app/Frameworks/OneSignalCore.framework/PrivacyInfo.xcprivacy"
@nan-li nan-li requested a review from emawby March 25, 2024 17:30
@nan-li nan-li merged commit 2ab045d into player-model-main Mar 25, 2024
2 checks passed
@nan-li nan-li deleted the player_model/fix_privacy_manifests branch March 25, 2024 17:50
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.

None yet

2 participants