Facebook SDK と Flurry SDKの が原因でアプリが拒否されました。最新のFlurry SDKadvertisingIdentifier
で が発生しているのを見つけました。以下の方法でライブラリで が発生しているかどうかを確認できます。advertisingIdentifier
Facebook SDK (3.12)
FacebookSDK.frameworkをターミナルでライブラリとして開き、次のコマンドを入力しました。
otool -v -s __TEXT __objc_methname FacebookSDK | grep advertisingIdentifier
Flurry SDK の場合も同様です。
でも、何をすればいいのか分からない。
ニュース: Flurry は最近 SDK を更新し、 は含まれなくなりましたadvertisingIdentifier
が、Facebook はまだ更新していません。
ベストアンサー1
アップデート:
下記の回答以降、アプリをストアに送信しましたが、下記の編集により、Facebook はインストール属性の追跡を行わずにイベントの追跡のみを行うことができます。したがって、以下の解決策の問題点は、Facebook がインストールを Facebook 上の広告キャンペーンにリンクすることを事実上禁止していることです。
これを修正するには、最新の3.13 Facebook SDKを使用し、
-weak_framework AdSupport
下記の提案に従ってプロジェクトから削除してください。
アプリはFBUtil.mを編集しなくても正しくコンパイルされるようになり、Pods.xconfigとPods-Facebook-iOS-SDK.xconfigからAdSupportフレームワークがリンクされなくなりました。
以下に返信を残しましたので、SDK の 3.12 バージョンから AdSupport を削除しようとした以前の試みを確認できますが、インストール広告のアトリビューション トラッキングを行う場合は使用しないでください。(実際には、CPC 広告を行う予定がある場合にのみ使用できます。そうでない場合、Facebook はインストール広告キャンペーンを最適化できません)。
古い返信:
私の場合、これでは不十分だったようです。念のため、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 広告サポート
これらをすべて削除します(Pods.xconfig と Pods-Facebook-iOS-SDK.xcconfig にあります)。
これは私にとってはうまくいきました。これで私のアプリ実行ファイルは AdSupport から解放されました。