Repository navigation
Release 7.0.3-rc4 - #440
Merged
Merged
Conversation
…-based exports Unity's scene delegate (UnityScene.mm) funnels both custom-URL-scheme opens and Universal Links through one private applyURL: choke point, which always dispatches kUnityOnOpenURL - the correct AppsFlyerLib entry point for custom-scheme links, but the wrong one for Universal Links (which AppsFlyerLib documents should go through continueUserActivity:restorationHandler: instead). Once a scene delegate is configured, iOS also stops calling the AppDelegate's continueUserActivity:, so AppsFlyer+AppController.m's existing swizzle is dead code in scene-based exports. Adds AppsFlyer+UnityScene.m: swizzles scene:continueUserActivity: and scene:willConnectToSession:options: to forward Universal Links through the correct AppsFlyerLib entry point while the NSUserActivity is still intact, and suppresses the one applyURL: dispatch that follows to avoid a duplicate event. Custom-URL-scheme handling and pre-scene exports are unaffected. Also adds an E2E regression phase (.af-e2e/test-plan.json phase_7) and its QA injection harness (UnitySceneDeepLink.mm), and fixes two runner bugs surfaced while wiring it up: af-scenario-runner.sh had no way to skip a phase per-platform, and log collection filtered on a stale PID after a deep-link trigger relaunches the app. Bumps plugin version 7.0.2 -> 7.0.3. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…es only scene:continueUserActivity: is Apple's general activity-continuation entry point, not Universal-Link-only - it also fires for Handoff, Siri Shortcuts/donated activities, Spotlight continuation, etc. The warm re-open swizzle was setting the apply-URL suppression flag for any non-nil NSUserActivity, unlike the cold-launch path (__af_firstBrowsingActivity) which already filtered for NSUserActivityTypeBrowsingWeb + a non-nil webpageURL. A non-browsing activity would set the flag without Unity's own applyURL: ever firing to consume it, silently suppressing the next legitimate deep link dispatch (a real custom-URL-scheme open or a genuine Universal Link) via kUnityOnOpenURL/handleOpenUrl:. Extracts the cold-launch path's filter into a shared __af_isBrowsingActivity helper and applies it to both call sites. Addresses PR review feedback. Co-Authored-By: Claude Sonnet 5 <[email protected]>
The top-level plan description still said phase_7 covers "Universal Link cold launch through the scene delegate," inconsistent with the phase's own (already-accurate) description: the QA harness can only drive scene:continueUserActivity: (warm re-open), since UISceneConnectionOptions has no public initializer to fabricate a real scene:willConnectToSession:options: cold-launch event. Since DELIVERY-115275 originated from a cold-launch-specific drop, call out explicitly that this automation does not cover it, so it doesn't read as fully verified. Addresses PR review feedback. Co-Authored-By: Claude Sonnet 5 <[email protected]>
AppsFlyerRPCClient.ParseResponse checked only root.ContainsKey("error"),
not whether the value was non-null. iOS emits "error":null (key present)
on a successful response rather than omitting the key entirely, so every
successful response threw AppsFlyerRPCException(-1, "Unknown RPC error")
instead of returning its result data.
Reported by a customer upgrading to 7.0.x on iOS; root cause confirmed
against the 7.0.2 release tag.
Adds a regression test (ParseResponse_SuccessWithExplicitNullErrorKey_ReturnsData)
covering the "error":null-alongside-"result" shape, which no existing
fixture exercised.
Bumps plugin version 7.0.2 -> 7.0.3.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
…elegate-support fix(ios): route Universal Links through continueUserActivity in scene…
CI was pinned to Unity 6000.3.5f1, whose iOS exporter never emits
UnityScene.h/.mm or UIApplicationSceneManifest - only the classic
UnityAppController-only template. Since AppsFlyer+UnityScene.m and
UnitySceneDeepLink.mm are both gated on #if __has_include("UnityScene.h"),
they silently compiled to empty translation units in CI, so phase_7
(and the underlying scene-delegate fix) could never actually run there,
even though everything passed locally on Unity 6000.5.6f1.
Bumps rc-e2e-ios.yml and e2e-manual.yml's package-build job to
6000.5.6f1 (verified download URLs/hash). Left rc-release.yml,
release_production_workflow.yml (only run -exportPackage, don't need
scene export) and rc-e2e-android.yml/push-unity-to-ghcr.yml (blocked -
no 6000.5.6f1 tag published yet for unityci/editor) untouched.
Co-Authored-By: Claude Sonnet 5 <[email protected]>
fix(ci): bump iOS E2E Unity Editor to 6000.5.6f1
Unity 6000.5.6f1 renamed the iOS Trampoline framework directory from Frameworks/libiPhone-lib-sim-arm64/ to Frameworks/UnityRuntime-sim-arm64/. The "Patch Unity libs to arm64 simulator" step still referenced the old path, so the cp of UnityRuntime.framework/UnityRuntime failed after the Unity version bump in the previous commit. Co-Authored-By: Claude Sonnet 5 <[email protected]>
fix(ci): update arm64 simulator patch path for Unity 6000.5.6f1
…/iOS pipeline - rc-e2e-ios.yml: run on the new dedicated self-hosted Apple Silicon Mac instead of GH-hosted macos-15, so Unity 6000.5.6f1 + iOS module stay resident on disk instead of being downloaded/installed fresh every run. - rc-e2e-android.yml: pin reactivecircus/android-emulator-runner to an exact release (v2.38.0) instead of the floating @v2 tag, so its internal SDK/cmdline-tools installation logic can't silently change between runs. - unity-playmode-tests.yml: export GITHUB_TOKEN for game-ci/unity-test-runner so its internal CLI-release lookup is authenticated instead of hitting the anonymous GitHub API rate limit (403), which was failing the iOS playmode unit test job. Co-Authored-By: Claude Sonnet 5 <[email protected]>
ci(e2e): move iOS E2E to dedicated self-hosted runner, harden pipeline
Author
|
RC-PROMOTE complete. Version surfaces and installation links now point at 7.0.3, and the branch is ready to merge. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RC release branch for 7.0.3-rc4. Promotion is gated by rc-smoke/github-release.