由于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。
您必须删除Facebook-SDK作为您的项目文件夹的捆绑版本,然后创build一个cocoapods并连接这些的最后一个版本;
pod 'FBSDKCoreKit' pod 'FBSDKShareKit' pod 'FBSDKLoginKit'