更新:
自从在下面回答后,我已将应用程序提交给商店,但根据下面建议的编辑,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 广告支持
并删除所有这些(您会在 Pods.xconfig 和 Pods-Facebook-iOS-SDK.xcconfig 中找到这些)
这对我有用,现在我的应用程序可执行文件不受 AdSupport 的约束。