iOS17下App Store審核被拒,IDFA不彈窗問(wèn)題終極處理方法

以前審核都很正常,但是這次最近遇見(jiàn)App Store審核被拒,原因是iOS17下IDFA不彈窗


image.png

網(wǎng)上查看了很多攻略,發(fā)現(xiàn)都說(shuō)的不太完善,這邊結(jié)合自身成功通過(guò)的方法再總結(jié)下。

1.General => Frameworks,Libraries,and Embedded Content 中添加AppTrackingTransparecy.framework
image.png

2.applicationDidBecomeActive中添加下述代碼

- (void)applicationDidBecomeActive:(UIApplication *)application {
    [self requestIDFA];
}
- (void)requestIDFA {
    [self getAppIDFADataWithCompletion:^(NSString *idfa) {

    }];
}

- (void)getAppIDFADataWithCompletion:(void (^)(NSString *))completion {
    __block NSString *idfa = @"";
    if (@available(iOS 14, *)) {
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];
            // 用戶(hù)還沒(méi)有做出選擇時(shí)
            if (status == ATTrackingManagerAuthorizationStatusNotDetermined) {
                [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                    if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                        idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                    } else {
                        NSLog(@"請(qǐng)?jiān)谠O(shè)置-隱私-跟蹤中允許App請(qǐng)求跟蹤");
                        idfa = @"";
                    }
                    if (completion) {
                        completion(idfa);
                    }
                }];
            } else if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
                if (completion) {
                    completion(idfa);
                }
            } else {
                NSLog(@"用戶(hù)已拒絕授權(quán)或在設(shè)置中關(guān)閉了IDFA");
                idfa = @"";
                if (completion) {
                    completion(idfa);
                }
            }
        });

    } else {
        idfa = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
        if (completion) {
            completion(idfa);
        }
    }
}

3.Info中添加下述內(nèi)容
image.png

上述能解決非多語(yǔ)言下的情況,但多語(yǔ)言環(huán)境,還行執(zhí)行下面設(shè)置
4.Info中移除對(duì)應(yīng)3中的Privacy字段,并在對(duì)應(yīng)的多語(yǔ)言InfoPlist中添加NSUserTrackingUsageDescription的字段

image.png

通過(guò)以上能解決IDFA不彈窗的問(wèn)題

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容