Unity AppTrackingTRansparency showing on Iphone but NOT Ipad

575 Views Asked by At

I'm trying to publish my first IOS app and running into an issue with AppTrackingTransparency showing up on specifically Ipad.

IOS 16 used

Tested on Iphone 11/12/13 works fine and the AppTracking notification pops up. On any Ipad the "Allow/Don't Allow" never shows up and just shows the background.

Is there a difference between how Apple handles the request on Ipad/Iphone? Any info/help would be great. This is the only thing standing between me and my app being published!

Code:

using Unity.Advertisement.IosSupport.Components;
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

`namespace Unity.Advertisement.IosSupport.Samples
{
    /// <summary>
    /// This component will trigger the context screen to appear when the scene starts,
    /// if the user hasn't already responded to the iOS tracking dialog.
    /// </summary>
    public class ContextScreenManager : MonoBehaviour
    {
        /// <summary>
        /// The prefab that will be instantiated by this component.
        /// The prefab has to have an ContextScreenView component on its root GameObject.
        /// </summary>
        public ContextScreenView contextScreenPrefab;

        void Start()
        {
            // check with iOS to see if the user has accepted or declined tracking
            var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();

            if (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
            {
                var contextScreen = Instantiate(contextScreenPrefab).GetComponent<ContextScreenView>();

                // after the Continue button is pressed, and the tracking request
                // has been sent, automatically destroy the popup to conserve memory
                contextScreen.sentTrackingAuthorizationRequest += () => Destroy(contextScreen.gameObject);
            }
            StartCoroutine(LoadNextScene());
        }

        private IEnumerator LoadNextScene()
        {
            Debug.Log("load next scene called");
            var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();

            while (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
            {
                Debug.Log("not determined");
                status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
                yield return null;
            }
            if(status == ATTrackingStatusBinding.AuthorizationTrackingStatus.DENIED || status == ATTrackingStatusBinding.AuthorizationTrackingStatus.RESTRICTED || status == ATTrackingStatusBinding.AuthorizationTrackingStatus.RESTRICTED)
            {
                Debug.Log("consent is no");
                PlayerPrefs.SetString("adConsent", "N");
            }
            else
            {
                Debug.Log("consent is yes");
                PlayerPrefs.SetString("adConsent", "Y");
            }
            SceneManager.LoadScene(1);
            yield return null;
        }
    }   
}

using System;
using UnityEngine;

namespace Unity.Advertisement.IosSupport.Components
{
    /// <summary>
    /// This component controls an iOS App Tracking Transparency context screen.
    /// You should only have one of these in your app.
    /// </summary>
    public sealed class ContextScreenView : MonoBehaviour
    {
        /// <summary>
        /// This event will be invoked after the ContinueButton is clicked
        /// and after the tracking authorization request has been sent.
        /// It's a good idea to subscribe to this event so you can destroy
        /// this GameObject to free up memory after it's no longer needed.
        /// Once the tracking authorization request has been sent, there's no
        /// need for this popup again until the app is uninstalled and reinstalled.
        /// </summary>
        public event Action sentTrackingAuthorizationRequest;

        public void RequestAuthorizationTracking()
        {
            Debug.Log("Unity iOS Support: Requesting iOS App Tracking Transparency native dialog. For Global Leaderboards & Revives this has to be accepted.");

            ATTrackingStatusBinding.RequestAuthorizationTracking();

            sentTrackingAuthorizationRequest?.Invoke();
        }
    }
}
0

There are 0 best solutions below