苹果支付、上线、被拒适配iOS上架

ios审核被拒-ios15下IDFA权限申请无法弹出

2021-10-13  本文已影响0人  yangluDDD

最近因为IDFA的问题被苹果审核拒绝:

图片1

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

原因很清楚,说我们使用的IDFA的功能,但是在ios15上面没有弹出权限说明,于是网上说适配ios14以后隐私权限申请,如下:

1.在info.plist文件里添加跟踪权限请求描述文字:

<key>NSUserTrackingUsageDescription</key>

<string>此标识符将用于向您推荐个性化广告。</string>

2.导入框架:

#import <AppTrackingTransparency/AppTrackingTransparency.h>

#import <AdSupport/ASIdentifierManager.h>

3.获取IDFA:

if (@available(iOS 14, *)) { // iOS14及以上版本需要先请求权限

     [ATTrackingManager                                              requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { // 获取到权限后,依然使用老方法获取idfa

        if (status == ATTrackingManagerAuthorizationStatusAuthorized) {

        NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];

    NSLog(@"%@",idfa);

        } else {

    NSLog(@"请在设置-隐私-跟踪中允许App请求跟踪");

    }}];

    }     else { // iOS14以下版本依然使用老方法 // 判断在设置-隐私里用户是否打开了广告跟踪

if ([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) {

NSString *idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString]; NSLog(@"%@",idfa);

} else {

NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");

}

}

但是此方法,在ios15中,如果在AppDelegate中的didFinishLaunchingWithOptions方法中调用,则测试无法弹出权限申请的弹框,这个可能是Ios15的bug,所以这边调用方法写在了applicationDidBecomeActive这个方法中,则可以顺利弹出权限申请弹框。在此记录下。

如果没有弹出,则延迟1秒调用。

上一篇下一篇

猜你喜欢

热点阅读