unity打包xCode之隐私协议请求 唯一广告标识符

unity 里面目前是没有直接调用Ios的接口的,需要自己编写,关联App Tracking Transparency框架的,在通过c#代码调用
这里说一下问题啊,方法1的话只有开始第一次游戏会调用,如果你频繁的调用请求的话,审核是不会给你过的,所以一般都是之调用一次,需要权限时一般都是弹提示让用户自己开启,

方法1有的时候用unity下的UnityEngine.iOS.Device.advertisingTrackingEnabled来判断是否允许,有的时候会请求失败,很迷,也没找到具体问题
需要一些ios的设备信息,都建议追踪协议后来调用,不然审核也不给你过
这里是unity的UnityEngine.iOS.Device函数,可以自行查看一下
ios的广告标识符可以用作ios设备的唯一标识符。

方法1

  1. 正常打包完xcode后,步骤如下,选择Classes下的UnityAppController.mm 添加两个引用
    #import <AdSupport/AdSupport.h>
    #import <AppTrackingTransparency/AppTrackingTransparency.h>

在这里插入图片描述

  1. 然后搜索是否有bool _unityAppReady =
    false(这个字段一般打包出来都是有的),如果没有需要自己添加一下

在这里插入图片描述

  1. 在继续查找- (void)applicationDidBecomeActive:(UIApplication*)application方法,在此方法最后添加
 if (@available(iOS 14, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                    }];
        } else {
            [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled];
    }

代码部分就完成了。
在这里插入图片描述

  1. 接下来需要去 info里面添加请求的说明 可以用我这里可以用字段Privacy - Tracking Usage Description 添加使用说明也可以是NSUserTrackingUsageDescription,一般中国地区你说明“您的数据将被用于为您提供更好的个性化广告体验。”就可以了。
    在这里插入图片描述
    打包运行就可以了,你怕填错了可以尝试点击你的info文件,如果不能正常打开,可能你复制后的结尾会有个隐藏的空格,删除一下就好
    在这里插入图片描述
    这里还需要注意,你要是前面已经打包运行了请删除手机上的程序重新构建一下项目

方法2

这里就直接引用了别人的文章,Unity 调用IOS ATT授权弹窗(AppTrackingTransparency)

猜你喜欢

转载自blog.csdn.net/qq_44971861/article/details/131984893
今日推荐