From 80cb71fdf3073fba81466544e2a91b5ca1fd277c Mon Sep 17 00:00:00 2001 From: Natalie Bunduwongse Date: Tue, 12 May 2026 13:54:16 +1200 Subject: [PATCH] fix(audience-sdk): gate iOS attribution providers behind AUDIENCE_MOBILE_ATTRIBUTION (SDK-347) Without this define, iOS could collect ATT status and IDFA at runtime even when AUDIENCE_MOBILE_ATTRIBUTION was not set, producing a mismatch between runtime behaviour and the privacy manifest (NSPrivacyTracking = false while IDFA was being collected). Both platforms now require the define before any attribution provider is registered, matching the documented two-gate model. Co-Authored-By: Claude Sonnet 4.6 --- src/Packages/Audience/Runtime/Unity/AudienceUnityHooks.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Packages/Audience/Runtime/Unity/AudienceUnityHooks.cs b/src/Packages/Audience/Runtime/Unity/AudienceUnityHooks.cs index c4c79838..ada1f446 100644 --- a/src/Packages/Audience/Runtime/Unity/AudienceUnityHooks.cs +++ b/src/Packages/Audience/Runtime/Unity/AudienceUnityHooks.cs @@ -35,7 +35,7 @@ private static void Install() ImmutableAudience.LaunchContextProvider = () => launchProps; ImmutableAudience.ContextProvider = () => contextProps; -#if UNITY_IOS && !UNITY_EDITOR +#if UNITY_IOS && !UNITY_EDITOR && AUDIENCE_MOBILE_ATTRIBUTION ImmutableAudience.MobileAttributionProvider = () => SkanRegistration.RegisterIfFirstLaunch(); ImmutableAudience.MobileAttributionContextProvider = () => AttributionContext.Capture(); ImmutableAudience.TrackingAuthorizationRequestProvider = () => ATTBridge.RequestAsync();