Facebook SDKとFlurry SDKのadvertisingIdentifier
が原因で私のアプリが拒否されました!最新のFacebook SDK (3.12)
とFlurry SDKでadvertisingIdentifier
が見つかった。多分あなたは以下の方法であなたのライブラリの出現をチェックすることができます:
ターミナルでライブラリとしてFacebookSDK.frameworkを開き、次のコマンドを入力しました
otool -v -s __TEXT __objc_methname FacebookSDK | grep advertisingIdentifier
flurry SDKについても同様です。
しかし、私は何をすべきかわかりません。
お知らせ:Flurryは最近、「advertisingIdentifier」を含まないSDKを更新しましたが、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 @"";
}
更新:
以下に回答して以来、私はアプリをストアに送信しましたが、以下に提案されている編集では、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はインストール広告キャンペーンを最適化できません)。
古い返信:
私の場合、これでは十分ではないようです。確かに、AdSupport Frameworkを完全に削除したかったのです。 Facebook SDK 3.12では、プロジェクトまたはポッドファイルに含まれていなくても、AdSupport Frameworkは常にインポート/リンクされているようです(実際、私は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にあります)。
これは私にとってはうまくいきました、そして今私のアプリの実行ファイルはAdSupportから無料です。
プロジェクトフォルダーのバンドルバージョンとしてFacebook-SDKを削除してから、cocoapodsを作成し、これらの最後のバージョンを接続する必要があります。
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'FBSDKLoginKit'