App Tracking Transparency 弹出窗口不出现
Posted
技术标签:
【中文标题】App Tracking Transparency 弹出窗口不出现【英文标题】:App Tracking Transparency popup do not appear 【发布时间】:2022-01-18 15:11:52 【问题描述】:我正在尝试在我的应用中实现应用跟踪透明度。我尝试在第一个 ViewController 上执行此操作,但在上传到试飞后应用程序崩溃。
在这之后,我发现很多信息应该在 appDelegate 中完成,我是这样做的。当然,我在Info.plist中设置了NSUserTrackingUsageDescription
我试图通过this post 来解决这个问题。
在调试器中,我总是看到“未确定”。有人可以帮忙吗?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
// Override point for customization after application launch.
requestTrackingPermission()
GADMobileAds.sharedInstance().start(completionHandler: nil)
return true
功能
func requestTrackingPermission()
if #available(ios 14, *)
// ATTrackingManager.requestTrackingAuthorization status in
ATTrackingManager.requestTrackingAuthorization(completionHandler: status in
switch status
case .authorized:
// Tracking authorization dialog was shown
// and we are authorized
print("Authorized")
// Now that we are authorized we can get the IDFA
print(ASIdentifierManager.shared().advertisingIdentifier)
case .denied:
// Tracking authorization dialog was
// shown and permission is denied
print("Denied")
case .notDetermined:
// Tracking authorization dialog has not been shown
print("Not Determined")
case .restricted:
print("Restricted")
@unknown default:
print("Unknown")
)
【问题讨论】:
您应该在 ViewControllers 而不是应用委托中请求权限。 我试了几次,但如果没有按钮或类似的东西,它就不起作用。能否举例说明如何实现? 【参考方案1】:我找到了方法。
添加你的第一个 ViewController
import AppTrackingTransparency
import AdSupport
import UserNotifications
在viewdidload中添加
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5)
if #available(iOS 14, *)
ATTrackingManager.requestTrackingAuthorization (status) in
print("IDFA STATUS: \(status.rawValue)")
【讨论】:
以上是关于App Tracking Transparency 弹出窗口不出现的主要内容,如果未能解决你的问题,请参考以下文章
App Tracking Transparency 消息未在某些设备中显示
App Tracking Transparency 隐私复选框和应用商店发布拒绝
iOS15系统App Tracking Transparency提审被拒
为 iOS 14.5 实施 Apple App Tracking Transparency (ATT) 的 React Native Expo
iOS 14.5 App Tracking Transparency for firebase log in react-native app