14版本以后需要使用下面的代码块去对数据跟踪的权限进行显示,
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
......
}
}
}
14以下都是在info.plist文件中直接添加权限
但是在15.3.1的手机上使用app时出现了间歇性展示提示框的问题,按照理想型结果应该是每次安装都弹出,百度了下结果出人意料,基本都是说系统的相关设置,个性化广告、内容和隐私访问限制。。。什么样的都有,试了一遍没有用,Google后与百度的内容大相径庭,不过也基本统一了解决方案:
如果上面的代码在didFinishLaunchingWithOptions中就不会展示,尤其是15以上的版本,
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
......
}
app应放在applicationDidBecomeActive
func applicationDidBecomeActive(_ application: UIApplication) {
......
}
requestTrackingAuthorization的代理必须是在 App 在前台活跃的前提下才能使用。
而且,在15以后的审核中需要显示tracking的弹框,如不显示则会被拒,我遇到的间歇性显示可能没那么好运恰好审核员能遇到,俗话说越怕什么越能遇到什么,所以改吧,代码不能靠运气。