由于Facebook sdk和Flurry SDK中的advertisingIdentifier
,我的应用被拒绝了!我在最新的advertisingIdentifier
和Flurry SDK中发现了Facebook SDK (3.12)
。也许您可以使用以下方法检查您的图书馆是否出现:
我在终端中打开了FacebookSDK.framework作为库,并输入以下命令
otool -v -s __TEXT __objc_methname FacebookSDK | grep advertisingIdentifier
和Flurry SDK一样。
但我不知道该怎么做。?
有消息:Flurry最近更新了他们的SDK,其中不包含“advertisingIdentifier”,但Facebook还没有。
答案 0 :(得分:17)
<强>更新强>
由于我在下面回答,我已将该应用程序提交到商店,但通过下面建议的编辑,Facebook只能跟踪事件而无需进行安装归因跟踪。 因此,下面解决方案的问题在于它有效地禁止Facebook将安装链接到Facebook上的广告活动。
对此的修复应使用最新的3.13 Facebook SDK并简单地删除
-weak_framework AdSupport
来自您的项目,如下所示。
现在应用程序正确编译而不编辑FBUtil.m并且它没有链接AdSupport框架已从Pods.xconfig和Pods-Facebook-iOS-SDK.xconfig中删除
我在下面留下了回复,以便您可以看到我之前尝试从SDK的3.12版本中删除AdSupport,但如果您想要安装广告归因跟踪,请不要使用它。 (事实上,只有在您计划进行CPC广告时才能使用它,否则Facebook将无法优化安装广告系列。)
OLD REPLY:
在我看来,这似乎还不够。 当然,我想完全删除AdSupport Framework。 在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中找到它们)
这对我有用,现在我的app可执行文件免于AdSupport。
答案 1 :(得分:12)
从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 @"";
}
答案 2 :(得分:2)