解决 iOS App Tracking Transparency 权限问题
解决 iOS App Tracking Transparency 权限问题
在 iOS 14 及更高版本中,Apple 引入了 App Tracking Transparency (ATT) 框架,要求应用在跟踪用户之前必须获得用户的明确许可。这通常涉及到访问用户的广告标识符(IDFA)。如果没有正确处理,应用可能会在 App Store 审核时遇到问题,例如收到 “Invalid purpose string value” 的错误。
什么是 App Tracking Transparency?
App Tracking Transparency 是 Apple 的一项隐私功能,旨在让用户控制哪些应用可以跟踪他们的行为以用于广告或数据共享。应用必须在 Info.plist
文件中提供 NSUserTrackingUsageDescription
键的值,向用户解释为什么需要跟踪他们的数据。
如何解决 “Invalid purpose string value” 错误
要解决这个问题,你需要确保你的应用正确地请求了跟踪权限,并且在 Info.plist
文件中提供了适当的描述。
步骤 1: 更新 Info.plist
文件
在你的 Info.plist
文件中,添加或更新 NSUserTrackingUsageDescription
键。这个键的值是一个字符串,用于向用户解释为什么你的应用需要跟踪他们的数据。
<key>NSUserTrackingUsageDescription</key>
<string>我们需要您的许可来跟踪您的使用习惯,以便提供更个性化的广告体验。</string>
确保这个字符串清晰、准确地描述了你的应用为什么需要跟踪用户。
步骤 2: 请求跟踪权限
在你的应用代码中,使用 App Tracking Transparency 框架来请求用户的许可。这通常在应用启动时或在需要跟踪用户行为的上下文中完成。
import AppTrackingTransparency
func requestTrackingPermission() {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
print("用户授权跟踪")
case .denied:
print("用户拒绝授权")
case .restricted:
print("跟踪被限制")
case .notDetermined:
print("用户尚未决定")
@unknown default:
print("未知的跟踪状态")
}
}
}
步骤 3: 测试你的应用
在提交应用更新之前,确保在真机上测试跟踪权限的请求。这可以通过 Xcode 的模拟器完成,也可以在实际设备上进行。
步骤 4: 提交审核并回应审核团队
在提交应用更新到 App Store 时,确保你的 App Store Connect 列表中的 “App 隐私信息” 部分也反映了你的应用如何处理用户数据。如果审核团队提出问题,确保你能够提供清晰的解释和必要的信息。
结论
遵循 Apple 的隐私政策和指南是确保你的应用顺利通过审核的关键。通过明确地请求用户的许可并在应用中正确处理跟踪权限,你可以提高用户的信任并避免审核时的问题。记得始终以用户为中心,尊重他们的隐私。