ios - 应用因 Facebook SDK 和 Flurry SDK 中的 advertisingIdentifier 而被拒绝

标签 ios iphone objective-c facebook

我的应用程序因 Facebook SDK 和 Flurry SDK 中的 advertisingIdentifier 而被拒绝!我在最新的 Facebook SDK (3.12) 和 Flurry SDK 中发现了 advertisingIdentifier 的出现。也许您可以使用以下方法检查您的图书馆是否发生:

我在终端中将 FacebookSDK.framework 作为库打开并键入以下命令

otool -v -s __TEXT __objc_methname FacebookSDK | grep advertisingIdentifier

Flurry SDK 也是如此。

但是我不知道该怎么办?

新闻:Flurry 最近更新了他们的 SDK,它不包含 advertisingIdentifier,但 Facebook 还没有。

最佳答案

更新:

自从在下方回答后,我已将应用程序提交到商店,但根据下方建议的编辑,Facebook 只能追踪事件,而无法进行安装归因追踪。 因此,以下解决方案的问题在于它实际上禁止 Facebook 将安装链接到 facebook 上的广告事件。

解决这个问题的方法是使用最新的 3.13 Facebook SDK 并简单地删除

-weak_framework AdSupport 

按照以下建议从您的项目中获取。

该应用程序现在无需编辑 FBUtil.m 即可正确编译,并且它不会链接 AdSupport 框架已从 Pods.xconfig 和 Pods-Facebook-iOS-SDK.xconfig 中删除

我在下面留下了回复,这样您就可以看到我之前尝试从 3.12 版 SDK 中删除 AdSupport,但如果您想安装广告归因跟踪,请不要使用它。 (事实上​​ ,您只有在计划进行 CPC 广告时才可以使用它,否则 facebook 将无法优化安装广告事件)。

旧回复:

这对我来说似乎还不够。 可以肯定的是,我想完全删除 AdSupport 框架。 在 Facebook SDK 3.12 中,AdSupport Framework 似乎总是被导入/链接,即使它没有包含在您的项目或 pod 文件中(事实上我正在使用 cocoapods 安装 Facebook SDK)。

AdSupport 框架确实没有链接到我的项目中,但在我的应用程序可执行文件上执行“otool -L”显示该框架仍在链接中。

为了避免当前的 FB SDK 这样做,您需要编辑以下内容:

在 FBUtility.m 中

评论这个:

//#import <AdSupport/AdSupport.h>

编辑以下方法:

+ (NSString *)advertiserID {
    /*
    NSString *advertiserID = nil;
    Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"];
    if ([ASIdentifierManagerClass class]) {
        ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
        advertiserID = [[manager advertisingIdentifier] UUIDString];
    }
    return advertiserID;
    */
    return @"";
}

+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {

    /*
    if ([FBSettings restrictedTreatment] == FBRestrictedTreatmentYES) {
        return AdvertisingTrackingDisallowed;
    }
    FBAdvertisingTrackingStatus status = AdvertisingTrackingUnspecified;
    Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"];
    if ([ASIdentifierManagerClass class]) {
        ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
        if (manager) {
            status = [manager isAdvertisingTrackingEnabled] ? AdvertisingTrackingAllowed : AdvertisingTrackingDisallowed;
        }
    }
    */
    return AdvertisingTrackingDisallowed;
}

最后,如果您在项目工作区中使用 cocoapods 搜索所有

-weak_framework AdSupport

然后删除所有这些(你会在 Pods.xconfig 和 Pods-Facebook-iOS-SDK.xcconfig 中找到它们)

这对我很有用,现在我的应用程序可执行文件已从 AdSupport 中免费获得。

关于ios - 应用因 Facebook SDK 和 Flurry SDK 中的 advertisingIdentifier 而被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574680/

相关文章:

ios - iPhone 和 iPad 上的边到边对象

带有 Symfony 1.4 的 Iphone 应用程序

iphone - 苹果通知 token 开启关闭

ios - "idleTimerDisabled"在 didFinishLaunchingWithOptions 中如何工作?

ios - 如何从iOS中的位置数组中找到5m到10m范围内的最近位置?

ios - 如何获取 TableView 是否被选为 Observable<Bool>?

ios - 最佳用户登录实现 iOS

ios - 如何使用 Moya pod 为请求设置超时?

ios - 将 UIPinchGestureRecognizer 添加到 UIImagePickerController

ios - UIButton 的标题标签不显示