Unity申请用户IDFA权限,跟踪你在其他公司的APP

Unity申请用户IDFA权限

一、情形
在这里插入图片描述
在这里插入图片描述
二、原因
请添加图片描述
三、解决方案

  1. OC代码,放在Plugins/iOS下
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/ASIdentifierManager.h>

extern "C"{
    
    

    void RequestIDFA()
    {
    
    
        if (@available(iOS 14, *)) {
    
    
                // iOS14及以上版本需要先请求权限
                [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    
    
                    // 获取到权限后,依然使用老方法获取idfa
                    if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
    
    
                        NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                        NSLog(@"获取到了%@",idfa);
                    } else {
    
    
                             NSLog(@"请在设置-隐私-跟踪中允许App请求跟踪");
                    }
                }];
            } else {
    
    
                // iOS14以下版本依然使用老方法
                // 判断在设置-隐私里用户是否打开了广告跟踪
                if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {
    
    
                    NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                    NSLog(@"获取到了%@",idfa);
                } else {
    
    
                    NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");
                }
            }
    }

}

  1. 设置
    在这里插入图片描述
    在这里插入图片描述

  2. C#

using System.Runtime.InteropServices;

public class GameStart : MonoBehaviour
{
    
    

#if UNITY_IOS && !UNITY_EDITOR
    [DllImport("__Internal")]
    public static extern void RequestIDFA();
#endif

    void Start()
    {
    
    

#if UNITY_IOS && !UNITY_EDITOR
        //跟踪
        RequestIDFA();
#endif
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_56130753/article/details/130559249