步骤1:导入框架
首先,需要在Swift文件中导入AppTrackingTransparency
框架。
Swift
import AppTrackingTransparency
import AdSupport
步骤2:请求跟踪许可
在适当的地方请求用户的跟踪许可。通常,这个请求会在应用启动时或者在用户执行某些操作(例如,访问应用中的广告相关功能)时发出。
Swift
import UIKit
import AppTrackingTransparency
import AdSupport
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
requestTrackingPermission()
}
func requestTrackingPermission() {
// 检查跟踪授权状态
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
print("用户授权了应用跟踪")
// 可以访问广告标识符 (IDFA)
let idfa = ASIdentifierManager.shared().advertisingIdentifier
print("IDFA: \(idfa)")
case .denied:
print("用户拒绝了应用跟踪")
case .restricted:
print("应用跟踪权限受限")
case .notDetermined:
print("用户尚未决定是否允许应用跟踪")
@unknown default:
print("未知的跟踪授权状态")
}
}
} else {
// iOS 14 以下版本不需要请求跟踪权限
print("iOS 14 以下版本不需要请求跟踪权限")
}
}
}
步骤3:更新Info.plist文件
为了让系统在请求跟踪许可时显示自定义说明,需要在Info.plist
文件中添加一个键NSUserTrackingUsageDescription
,并为其提供描述性文本,说明为什么需要用户允许跟踪。
在 Info.plist
文件中添加 NSUserTrackingUsageDescription
键的步骤:
-
打开 Xcode 项目。
-
在项目导航器中找到应用的
Info.plist
文件。这通常位于项目的"Supporting Files"文件夹中。 -
右键点击
Info.plist
文件,然后选择"Open As" -> "Source Code"来以源代码形式打开它。 -
在
<dict>
标签内,添加一个新的<key>
和<string>
对来定义NSUserTrackingUsageDescription
。
XML
<key>NSUserTrackingUsageDescription</key>
<string>为了向您提供更个性化的广告和内容,我们请求您的授权以允许应用跟踪您的活动。</string>
注意:从 iOS 14 开始,如果应用尝试在没有用户授权的情况下跟踪用户,应用可能会受到苹果的审查或限制。因此,确保在请求跟踪授权之前,你已经向用户清楚地解释了为什么你的应用需要这样做。
说明
requestTrackingPermission
方法:这个方法会检查当前的跟踪授权状态,如果运行在iOS 14及以上版本,会请求用户的跟踪许可。ATTrackingManager.requestTrackingAuthorization
:这是请求用户跟踪许可的核心方法。它会显示系统弹出框,向用户请求授权。ASIdentifierManager.shared().advertisingIdentifier
:在用户授权的情况下,可以访问广告标识符 (IDFA)。Info.plist
中的NSUserTrackingUsageDescription
:这是在请求跟踪许可时显示给用户的说明,必须根据应用的实际用途填写。
处理不同的授权状态
在requestTrackingPermission
方法中,根据用户的选择处理不同的授权状态:
.authorized
:用户授权了应用跟踪,可以访问IDFA。.denied
:用户拒绝了应用跟踪。.restricted
:应用跟踪权限受限,通常是由于家长控制或设备配置限制。.notDetermined
:用户尚未决定是否允许应用跟踪。