一种检查 IDFA 是否可用的动态方法

A dynamic way of checking if IDFA is available

我正在开发一个 iOS 其他应用程序将集成的 SDK。如果我的代码为 运行 的应用程序链接到 AdSupport.framework,我想使用 IDFA 进行安装归因。否则不会。

当我使用下面的代码时,苹果会拒绝申请吗?

+ (NSString *)appleIDFA {  
    NSString *idfa = nil;  
    Class ASIdentifierManagerClass = NSClassFromString(@"ASIdentifierManager");  

    if (ASIdentifierManagerClass) { 
        SEL sharedManagerSelector = NSSelectorFromString(@"sharedManager");  
        id sharedManager = ((id (*)(id, SEL))[ASIdentifierManagerClass methodForSelector:sharedManagerSelector])(ASIdentifierManagerClass, sharedManagerSelector);  
        SEL advertisingIdentifierSelector = NSSelectorFromString(@"advertisingIdentifier");  
        NSUUID *advertisingIdentifier = ((NSUUID* (*)(id, SEL))[sharedManager methodForSelector:advertisingIdentifierSelector])(sharedManager, advertisingIdentifierSelector);  
        idfa = [advertisingIdentifier UUIDString];  
    }  
    return idfa;  
}

我最终使用了这些解决方案并且没有遇到任何问题。