uni-app iOS审核IDFA问题。应用确定没开广告,却提示“您的 App 正在使用广告标识符 (IDFA)”

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app iOS审核IDFA问题。应用确定没开广告,却提示“您的 App 正在使用广告标识符 (IDFA)”

14 回复

此问题是由于应用中显示广告和部分第三方SDK功能可能会使用到IDFA标识(新浪微博登录|分享、友盟统计等),提交AppStore时将“此App是否使用广告标识(IDFA)”选择项中勾选“是”即可。
重要:打开IDFA不影响AppStore审核 如果应用中没有广告可以选择“将此App安装归因于先前投放的特定广告”项,如下图所示。

如果应用中存在广告,则可将“在App内投放广告”项选中。
万一由此引发其它问题,并确认不会使用到idfa相关功能(微博登录|分享、友盟统计、广告等),也可以在manifest.json中配置以下节点关闭读取idfa标识: {
//…
“plus”:{
//…
“distribute”:{
//…
“apple”:{
//…
“idfa”:false
}
}
}
}


直接选择没有使用就可以了,不通过会优具体说明和截图,自己看就明白了

如果使用了微博登录等第三方插件导致无法禁止读取广告标识符的,在提交苹果审核时承认使用了广告标识符,再选中2,3,4选项,我是这样提交的,然后审核通过了。1选项是读取广告标识符是为了投放广告,2/3选项表示追踪自己投放的广告,4选项同意协议。

现在dcloud官方会默认读取广告标识符,如果确定插件都没有用到广告标识符,可以根据官方建议设置。在manifest.json { //… “plus”:{ //… “distribute”:{ //… “apple”:{ //… “idfa”:false } } } }

我也遇到同样的问题,先否还提交不了。

按照上面的方法在plus apple节点下加上"idfa":false就可以了的,我昨天也是这个问题,加上重新打包上传就好了

我也用同样方法解决了

ios前三次打包成功了,后边就打包失败,如果idfa为true的话显示 “当前应用 IDFA 已经开启,在提交 AppStore 审核时需要在后台开启 IDFA,” 如果为false则显示“类型: iOS 打包失败 错误日志: https://service.dcloud.net.cn/build/errorLog/910ea570-6bf2-11ea-a3a8-bbdacc842fc6” 麻烦看下

应用图片配置不全。

回复 DCloud_App_Array: 是没有配置启动图的原因吗 为何前几次可以打包成功,你们另一个开发人员告诉我 说是打包时 制作的这个Assets.xcassets 有问题

回复 DCloud_App_Array: 图片配置完善后 还是打包失败

在处理uni-app在iOS审核过程中遇到的IDFA(广告标识符)问题时,首先需要明确的是,即便你的应用没有直接使用广告功能,某些库或框架可能间接地访问了IDFA。iOS平台对于IDFA的使用有严格的隐私政策要求,应用必须在Info.plist中声明其使用目的,并且用户必须同意才能使用。

以下是一些步骤和代码示例,帮助你检查和解决IDFA相关的问题:

1. 检查依赖库

首先,检查你的项目中是否引入了可能使用IDFA的第三方库。这包括但不限于广告库、分析库等。可以通过Podfile、npm包管理文件或项目的配置文件来确认。

2. 更新Info.plist

如果你的应用确实需要访问IDFA(即使间接通过第三方库),你必须在Info.plist中添加NSAdTrackingUsageDescription键,并提供一个描述应用为何需要访问IDFA的字符串。例如:

<key>NSAdTrackingUsageDescription</key>
<string>我们需要访问广告标识符以提供个性化内容。</string>

3. 代码审查

检查代码中是否有直接或间接触及IDFA的代码。对于uni-app,虽然主要是使用Vue.js开发,但你可能通过插件或原生模块访问了IDFA。以下是一个iOS原生代码检查IDFA是否可用的示例:

#import <AdSupport/AdSupport.h>

- (BOOL)isIDFAAvailable {
    if ([ASIdentifierManager class]) {
        // 检查IDFA是否可用
        ASIdentifierManager *manager = [ASIdentifierManager sharedManager];
        if (manager.advertisingIdentifier) {
            // IDFA可用
            return YES;
        }
    }
    // IDFA不可用
    return NO;
}

如果你的项目中包含原生代码或插件,确保没有未经用户同意就访问IDFA的代码。

4. 使用工具检测

利用Apple提供的工具(如Xcode的隐私设置检查器)来扫描你的应用,看是否有未声明的隐私访问。

5. 联系第三方库开发者

如果确定是第三方库导致了IDFA的访问,尝试联系库的维护者,询问是否有不使用IDFA的替代方案或更新版本。

6. 提交审核

在确认所有设置正确无误后,重新提交应用到App Store进行审核。

通过上述步骤,你应该能够定位并解决uni-app在iOS审核中遇到的IDFA问题。如果应用确实没有使用IDFA,确保所有依赖库也都不访问IDFA,以避免不必要的审核障碍。

回到顶部