审核被拒:2.1 App Tracking Transparency permission request

2,792 阅读3分钟

2021年9月15日,苹果正式发布iOS15,与之对应的,同步推出了Xcode 13版本,OK,事情背景交代完毕。9月25日,我例行更新APP,第二天被拒,原因是说,在iOS 15下 没有看到App Tracking Transparency(ATT)请求弹框。原文如下:

Guideline 2.1 - Information Needed


We're looking forward to completing our review, but we need more information to continue. Your app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request when reviewed on iOS 15.0.

Since you indicated in App Store Connect that you collect data in order to track the user, we need to confirm that App Tracking Transparency has been correctly implemented.

Next Steps

Please explain where we can find the App Tracking Transparency permission request in your app. The request should appear before any data is collected that could be used to track the user.

If your app does not track users, please update your app privacy information in App Store Connect. You must have the Account Holder or Admin role to update app privacy information.

If you've implemented App Tracking Transparency but the permission request is not appearing on devices running the latest OS, please review the available documentation and confirm App Tracking Transparency has been correctly implemented.

Resources

- Tracking is linking data collected from your app with third-party data for advertising purposes, or sharing the collected data with a data broker. Learn more about tracking.
- See Frequently Asked Questions about the new requirements for apps that track users.
- Review developer documentation for App Tracking Transparency.



Since your App Store Connect status is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit App Store Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, reply to this message in Resolution Center and we will continue the review.

其实这个问题之前在14.*版本的时候已经处理过了,为了求证,我把手机升到了15.0,证实了该问题确实存在。 不卖关子,解决办法是修改 方法(requestTrackingAuthorizationWithCompletionHandler:)的调用时机

#import "AppDelegate.h"
#import <AdSupport/AdSupport.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h>

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    
      [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler...
}

参考链接 着急的朋友看到这里就可以着手开搞了。

再说件测试该弹框时可能会遇到的问题:在iOS 14.6系统上,这个ATT弹框在第一次安装app可以正常弹出,之后即使是卸载再重新安装也不会出现了,这个问题可以通过重置IDFA来解决。但14.6以后的系统去掉了【还原广告标识符】这一选项,可以通过关闭再打开全局的【允许App请求跟踪】按钮来重置IDFA 14.6的操作路径是 设置-隐私-跟踪-允许App请求跟踪

还有一件小事,这个ATT弹框说到底是为了获取idfa的,是跟广告收益挂钩的,因为ATT弹框的文案和样式没有办法自定义,只是干巴巴给用户弹个框,可能效果不好,这里可以参考 饿了么的做法

IMG_1197.PNG 说下实现思路:首先获取授权状态,状态是ATTrackingManagerAuthorizationStatusNotDetermined请求权限时,present一个说明的控制器或view,然后再去请求权限,在权限回调里 再移除这个控制器和view就可以啦

最后的最后,人在郑州,因苦于找不到一份五险一金的工作,求推荐工作,活儿好不粘人