IOSゲームをApp Storeに提出しています。
xcodeにより、不適切な広告識別子[IDFA]の使用に関するエラーが表示されます。アプリにはAdvertising Identifier [IDFA] APIが含まれていますが、iTunes Connectの[アップロードの準備]ページでその使用方法を指定していません。
これを修正する方法は?助けてくれた。
同じbundleIDのアプリケーションをアップロードできます。アップロードが完了したら、バイナリを拒否できます。次にステータスを[アップロード準備完了]に変更したときに、忘れずに[IDFA]をチェックしてください。
現在、すべてが通常の状態になっています。この間、バイナリをアップロードするだけで、IDFAを大きく2つのカテゴリに分類できます。
サイト運営者:サードパーティの広告ネットワークライブラリを使用して広告を表示します。 IDFAで最初のオプションを選択->「アプリ内で広告を配信」。広告を表示するため、あなたは出版社ですが、自分のアプリの広告は実行しません。
広告主:サードパーティのライブラリを使用して、アプリのコンバージョンを追跡し、アプリの「目標」を追跡します。アプリに広告を直接表示しません。 IDFAで2番目と3番目のオプションを選択します-> [このアプリのインストールを以前に配信した広告に関連付ける] AND「このアプリ内で実行されたアクションを以前に配信された広告に関連付けます」。
混合:アプリのコンバージョンと、アプリのディスプレイ広告をトラッキングします。 3つのオプションをすべて選択します。
[アップロードの準備]ページで[はい]をオンにする必要があります。 ただし、「いいえ」にチェックマークを付けると、iTunes Connectでこの新しいバージョンが使用できなくなり、アップロードの準備ページに再入力したり、新しいバージョンを削除したりできなくなります。
現時点では、このエラーが発生した場合、古いバージョンではアプリが永久にロックされているようです。 Appleはこれを修正する必要があります!
これは今私のために働いた。
ちなみに、このオプションを有効にすると 役に立たない
これによると article は、Apple同じ問題を受け取ります。
アップルは、サードパーティのライブラリを含むコードをチェックして、以下の発生を排除するよう出版社に助言しました。
クラス:ASIdentifierManager
セレクター:AdvertisingIdentifier
フレームワーク:AdSupport.framework
私は同じ問題を抱えていて、上記のインスタンスを検索しました... Playhaven APIでそれらのメソッドを見つけましたが、そのセクションをコメントアウトした後、再びエラーが発生しませんでした。
Playhaven apiのアップデートでこれも修正されたかもしれませんが、よくわかりません...「クイックフィックス」を選択しました。
ITunes Connectでアプリを検証しているときにもこの警告に直面していました Ref Link からダウンロードしたFacebookSDK.frameworkを使用していました。 FBUtility.mで以下のコードにコメントして削除しましたAdsupport.Frmaework
+ (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 @"";
}
同じクラスの別の関数を変更しましたFBUtility.m
+ (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 status;
}
に
+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {
FBAdvertisingTrackingStatus status =AdvertisingTrackingUnspecified;
return status;
}
FacebookSDK.frameworkを削除し、 Ref Link からFacebookフレームワークをダウンロードしました。この方法を使用してこの警告を解決し、アプリを正常にアップロードしました。
また、このスタックの質問 Link を参照して、拒否を避け、不要なフレームワークを見つけて削除してください。
バンドルIDが同じで広告がサポートされていないアプリをアップロードするだけで、バイナリを拒否し、新しい広告オプションを確認しますyes。その後、問題なくアプリを送信できます。
ITunesConnectサイトは、この警告を処理するときのワークフローを変更しました。この警告とともにアプリをアップロードする必要があります(少なくともXCode 5.1.1では)。
ITunesConnectでは、XCodeからアップロードした後にビルドを選択するようになりました。ビルドを選択し、[レビュー用に送信]をクリックすると、アップロードの準備時に以前に設定したプロンプトが表示されます(具体的には、 "広告識別子")。
ITCアップロードページでIDFAに対して[はい]を選択した場合、Safariの設定でAdBlockerを必ずオフにしてください 「続行」をクリックすると、その使用法を選択するオプションは表示されません。
広告ブロッカーがオフになっていて、すべてが正常に機能する場合、HTMLページが展開され、選択オプションが下部に表示されます。
私は同じ問題を抱えています。
このアプリでは、googleAnalytics/googleMapsライブラリとTestFlightライブラリを使用しています。 IDFAのNOフラグを使用して、iTunes Connectの新しいバージョンに固執しています。
アプリが正しくコンパイルされなくなるため、このライブラリを削除できません。
解決策は何ですか?同じバンドルIDとバージョンIDで空のアプリを作成し、iTunes Connectにアップロードしてから、公開を停止しますか?本当に?
ありがとう:)
問題がiOS向けGoogleアナリティクスSDKのみに関連している場合は、アップグレードできます。新しいバージョンでは、AdSupport Frameworkから依存関係を削除し、IDFAからも依存関係を削除します。
@iDurocherが言ったことに対する完全な詳細な回答として:
1。バイナリをアップロードした後、少なくとも1つのアクティブなプレリリースビルドがあることを確認します(プレリリースを選択し、クリック可能なビルドが1つあることを確認します。処理には30分程度かかる場合があります)。
2。バージョン画面に戻って選択します アップロードされたビルドを追加します。
3。今すぐ確認のために[送信]を押すと、IDFAについて尋ねられます。
Facebook iOS SDK
もIDFAを使用します。私が理解しているように、iTunes Connectの情報によると、広告目的にのみIDFAを使用する必要があります。私はそれを取り除いたが、今は大丈夫だ。
IDFAの警告にもかかわらず、同じ問題が発生し、アプリのアップロードを解決しました。その後、IPAは拒否され、「アップロードの準備」ページを有効にして最初からやり直すことができます。 「アップロードの準備」ページの「広告識別子」セクションの「はい」を必ず確認してください。
-バイナリを拒否します。
-バイナリを再度アップロードします。
-[このアプリは広告識別子(IDFA)を使用します]オプションをオンにします
これで完了です。
使用している場合、MixPanel.mのコードを変更する必要があります。
- (NSString *)defaultDistinctId
{
NSString *distinctId = nil;
if (NSClassFromString(@"ASIdentifierManager")) {
distinctId = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
}
if (!distinctId) {
NSLog(@"%@ error getting ifa: falling back to uuid", self);
distinctId = [[NSUUID UUID] UUIDString];
}
if (!distinctId) {
NSLog(@"%@ error getting uuid: no default distinct id could be generated", self);
}
return distinctId;
}
に
- (NSString *)defaultDistinctId
{
return @"";
}
collectAutomaticProperties、collectAutomaticProperties関数の行の下のコメント
// if (NSClassFromString(@"ASIdentifierManager")) {
// [p setValue:[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString] forKey:@"$ios_ifa"];
// }
Xcodeでアプリを検証しているときにAdmob(GoogleMobileAds)SDKで同じ問題が発生しました。
私の解決策は:
XcodeでアプリをiTunes Connectに配布する
ITunes ConnectページのSafariでAdblockをオフにする
ITunes ConnectでのIDFAの不適切な使用により、アプリが無効であると宣言されました
「アップロードの準備」ページが再び表示されます
このページで広告識別子の使用を有効にしました。