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

Flutter实现App Tracking Transparency解决苹果审核被拒问题

iOS App Store跟踪透明度配置排查修复方案

现存问题

你当前的配置存在3个核心问题,会导致苹果审核被拒:

  • 未添加Info.plist的权限描述字段,这是苹果要求的必填配置
  • 授权请求时机错误,放在runApp前的启动阶段调用,不符合苹果的规范要求
  • 未做iOS系统版本判断,低于14.5的系统调用该接口会出现异常

修复步骤

1. 配置Info.plist权限描述

打开ios/Runner/Info.plist文件,在dict节点内添加如下配置:

<key>NSUserTrackingUsageDescription</key>
<string>该权限将用于为您推荐个性化内容与广告,优化您的使用体验</string>

注意:描述内容必须明确说明你收集用户标识符的实际用途,禁止使用模糊表述,否则仍会被审核驳回

2. 调整授权请求代码

首先删除main.dart中main函数内的这两行代码:

final TrackingStatus status =
await AppTrackingTransparency.requestTrackingAuthorization();

将授权请求移到应用首页面加载完成后的生命周期中调用,同时添加平台与版本判断,示例代码如下:

import 'package:device_info_plus/device_info_plus.dart'; // 需提前在pubspec.yaml添加该依赖

// 放在首页的initState方法内
@override
void initState() {
  super.initState();
  WidgetsBinding.instance.addPostFrameCallback((_) async {
    if (Platform.isIOS) {
      // 获取iOS系统版本
      final iosInfo = await DeviceInfoPlugin().iosInfo;
      final versionNum = double.tryParse(iosInfo.systemVersion.split('.').take(2).join('.')) ?? 0;
      // 仅iOS 14.5及以上版本需要申请权限
      if (versionNum >= 14.5) {
        await AppTrackingTransparency.requestTrackingAuthorization();
      }
    }
  });
}

3. 调整第三方SDK初始化时机

如果你集成了Firebase、广告、统计类第三方SDK,请将这些SDK的初始化逻辑放在用户完成跟踪授权之后执行,避免在未授权的情况下提前收集用户数据,触发苹果审核规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:48:00