Skip to content

fix: [SDK-4927] migrate to Unity External Dependency Manager#892

Merged
fadi-george merged 4 commits into
v6from
fadi/sdk-4927
Jul 23, 2026
Merged

fix: [SDK-4927] migrate to Unity External Dependency Manager#892
fadi-george merged 4 commits into
v6from
fadi/sdk-4927

Conversation

@fadi-george

@fadi-george fadi-george commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Description

One Line Summary

Replace the deprecated bundled Google EDM4U integration with Unity External Dependency Manager 2.0.

upm-rejection

Details

Motivation

Unity Asset Store rejected the v6 submission because it referenced Google's superseded EDM4U package. Unity now requires package maintainers to use com.unity.external-dependency-manager. See Unity’s EDM setup guidance.

Scope

  • Declare Unity EDM 2.0 in the Android and iOS UPM packages.
  • Remove the legacy EDM4U installer and vendored demo binaries.
  • Refresh demo lockfiles, project settings, notices, and documentation.
  • Add distribution checks preventing legacy EDM4U from being reintroduced.
  • No public OneSignal API changes.

Testing

Unit testing

No unit tests were added because this changes Unity package resolution and distribution metadata rather than runtime behavior.

Manual testing

  • Ran python3 .github/scripts/validate-unity-distribution.py.
  • Ran npm pack --dry-run for all three UPM packages.
  • Resolved Unity EDM 2.0 and compiled the demo projects with Unity 2022.3 and Unity 6.

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

@fadi-george
fadi-george requested a review from a team as a code owner July 23, 2026 18:28
@cursor

cursor Bot commented Jul 23, 2026

Copy link
Copy Markdown

Adversarial review (high / medium)

High — Legacy Google EDM left in customer projects
Removing InstallEdm4uStep and the reset cleanup of Assets/ExternalDependencyManager leaves upgrades with no migration for existing Assets-folder EDM4U. Dual resolvers commonly break Android/iOS resolution; Unity EDM 2.0 docs recommend keeping only one manager active and deleting Assets installs. Add a setup step and/or v6 migration note to detect and remove/disable legacy Google EDM.

Medium — demo-no-location under-validated
CI blocks legacy EDM in both demos, but validate_packages() only checks examples/demo/Packages/manifest.json. Mirror those manifest checks for demo-no-location.

Medium — Demo EDM settings asymmetry
examples/demo commits ExternalDependencyManagerSettings.json (edmEnabled: true); demo-no-location gitignores most ProjectSettings/, so it does not. Track the same settings (or document why not) to avoid prompt/resolution drift.

@fadi-george
fadi-george requested a review from sherwinski July 23, 2026 23:03
Comment thread .github/scripts/validate-unity-distribution.py
@fadi-george
fadi-george merged commit 210b51e into v6 Jul 23, 2026
1 check passed
@fadi-george
fadi-george deleted the fadi/sdk-4927 branch July 23, 2026 23:27
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.

2 participants