You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter iOS应用因未实现ATT被拒,求解决方案及合规疑问

Flutter iOS 应用 App Tracking Transparency(ATT)实现方案及合规疑问解答

一、ATT 实现步骤(Flutter)

  • 引入插件:在pubspec.yaml中添加app_tracking_transparency依赖,比如app_tracking_transparency: ^2.0.4,执行flutter pub get完成安装。
  • 配置Info.plist:在iOS项目的Info.plist文件中添加两项关键配置:
    • 添加NSUserTrackingUsageDescription键,值需清晰向用户说明跟踪权限的用途(例如"我们需要此权限来优化应用体验并提供精准的服务统计"),苹果会严格检查该描述的合理性。
    • 若涉及订阅归因(如RevenueCat的来源跟踪),需添加SKAdNetworkItems数组,填入对应的SKAdNetwork ID(可参考RevenueCat相关文档获取所需ID)。
  • 代码请求权限:选择合适时机发起权限请求(禁止应用启动时直接弹窗,建议在首页初始化完成后或用户产生交互后),示例代码如下:
    import 'package:app_tracking_transparency/app_tracking_transparency.dart';
    
    Future<void> requestTrackingPermission() async {
      final currentStatus = await AppTrackingTransparency.trackingAuthorizationStatus;
      if (currentStatus == TrackingStatus.notDetermined) {
        final newStatus = await AppTrackingTransparency.requestTrackingAuthorization();
        switch (newStatus) {
          case TrackingStatus.authorized:
            // 用户授权,可正常使用Firebase Analytics、RevenueCat的跟踪功能
            break;
          case TrackingStatus.denied:
            // 用户拒绝,需确保相关SDK在无权限下正常运行(Firebase Analytics会自动切换至非跟踪模式)
            break;
          case TrackingStatus.restricted:
            // 设备受系统限制,无法获取权限
            break;
          default:
            break;
        }
      }
    }
    

二、firebase_analytics 与 RevenueCat 的合规要求

  • firebase_analytics: Firebase Analytics默认会收集IDFA用于用户行为跟踪与归因,根据苹果ATT规则,只要应用收集或使用IDFA,就必须请求用户授权。即便未集成广告,只要Firebase Analytics在运行,就需要实现ATT。
  • RevenueCat: RevenueCat核心是订阅管理,但它会使用IDFA进行订阅来源归因(如跟踪用户从哪个渠道完成订阅),这属于苹果定义的"跟踪"行为,因此必须遵守ATT规则,请求用户授权。

综上,你的应用必须实现ATT才能通过苹果审核,即便没有广告集成。

内容的提问来源于stack exchange,提问作者gurkan stack

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:33:12