swift - 您的应用包含 NSUserTrackingUsageDescription,表示您将请求跟踪用户的权限
问题描述
我添加了 Google Admob 框架,用于在应用程序中显示广告并在 iTunes 连接应用程序隐私部分中获取与用户跟踪使用相关的错误。iTunesConnect 不允许提交应用程序。之后,我在 info.plist 中有正确的密钥和描述。
<key>NSUserTrackingUsageDescription</key>
<string>App would like to access IDFA for tracking purpose</string>
并且还在登录页面添加了请求权限的代码,并在viewDidLoad中调用它。
func requestPermission() {
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { 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")
}
}
} else {
// Fallback on earlier versions
}
}
但是在上传新版本后,iTunesConnect 仍然没有出现错误,我无法提交版本。有人遇到过同样的事情吗?这个错误将如何隐藏>
解决方案
如果您正在为广告和/或第三方库收集用户数据,您只需要使用 info.plist 中的 NSUserTrackingUsageDescription 属性。
如果您将信息保留在您的应用程序中,或出于身份验证目的,则您不是在跟踪;因此,您不需要此属性。(我希望我已经正确解释了这一点。)
也就是说,您在 App Store Connect 的 App Privacy 部分提供的信息与 info.plist 中的 NSUserTrackingUsageDescription 属性不一致。
推荐阅读
- sql-server - 在变量中使用引号在 SQL 中构造字符串
- bash - 没有人在服务器上时关闭计算机
- questdb - 如何在 QuestDB 中实现高可用?
- oracle - 在 SQL Developer 中,如何模拟嵌套的 for 循环以提取大量计数?
- javascript - 如何在换行符上隐藏 div
- c++ - HelloWorld C++:访问桌面文件夹的神秘请求
- javascript - 在 vuejs 中使用 vuex-persistedstate 创建多个唯一状态
- c++ - 努力让我的 switch 语句起作用
- database - 将旧 GUID (Symfony <= 5.2) 迁移到新 UUID 组件 (Symfony >= 5.3) 作为实体 ID
- sql - 修复 SQL 触发器语法