【Unity】Mac(Designed for iPad)でのATTダイアログ

iPhone,iPad向けのアプリで広告を表示している場合、ATTダイアログを出して確認する必要があるがAppleシリコンのMacでも動くようにする場合に問題があった。

MacだとATTダイアログが出ないです

そのため、”NOT_DETERMINED”のままになってしまい、決定を待っていると終わらなかった。

最終的にこんな実装をしました。

#if UNITY_IOS
using Unity.Advertisement.IosSupport;
using UnityEngine.iOS;
#endif

//
// 中略
//

#if UNITY_IPHONE || UNITY_IOS
        // check with iOS to see if the user has accepted or declined tracking
        var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();

        //まだATT方針を決めていないなら
        if (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
        {
             ATTrackingStatusBinding.RequestAuthorizationTracking();
        }
            //実機の時だけ完了待ちをする
#if !UNITY_EDITOR
        // macでiPadアプリを動作させている.
        if(Device.iosAppOnMac){
            
        }
        else {
            while (status == ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED)
            {
                status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
                yield return new WaitForEndOfFrame();
            }
        }
#endif
#endif

“Device.iosAppOnMac”でMacかどうかを判定できるので、Macだったら無視するようにした。

Device.iosAppOnMac

コメント

タイトルとURLをコピーしました