由于Facebook SDK和Flurry SDK中的advertisingIdentifier而被拒绝的应用程序

我的应用程序被拒绝,因为在Facebook的SDK和Flurry SDK的advertisingIdentifier ! 我在最新的Facebook SDK (3.12)和Flurry SDK中发现了一个advertisingIdentifier事件。 也许你可以使用下面的方法检查你的图书馆的发生:

我在terminal打开了FacebookSDK.framework作为一个库,然后input以下命令

 otool -v -s __TEXT __objc_methname FacebookSDK | grep advertisingIdentifier 

和Flurry SDK一样。

但我不知道该怎么办。

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

https://github.com/facebook/facebook-ios-sdk获取源代码,而不是编译的框架。 只要删除框架并粘贴在源代码应该做到这一点。

转到FBUtility.m并修改这个方法:

 + (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; } 

 + (NSString *)advertiserID { return @""; } 

更新:

由于回答下面我已经提交应用程序的商店,但与以下build议的编辑Facebook只能跟踪事件,而不做安装归因跟踪。 因此,下面的解决scheme的问题是,它有效地禁止Facebook将安装链接到Facebook上的广告活动。

一个解决这个应该使用最新的3.13 Facebook SDK,并简单地删除

 -weak_framework AdSupport 

从您的项目如下build议。

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

我在下面留下了回复,以便您可以看到我以前尝试从SDK的3.12版本中删除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在你的项目工作区search所有的东西

-weak_framework AdSupport

并删除所有这些(你会发现在Pods.xconfig和Pods-Facebook-iOS-SDK.xcconfig)

这已经适用于我,现在我的应用程序可执行文件是免费的AdSupport。

刚刚阅读这个:

https://developers.facebook.com/bugs/242477629268301/

无需更改代码。

您必须删除Facebook-SDK作为您的项目文件夹的捆绑版本,然后创build一个cocoapods并连接这些的最后一个版本;

  pod 'FBSDKCoreKit' pod 'FBSDKShareKit' pod 'FBSDKLoginKit'