Неправильное использование рекламного идентификатора [IDFA]

Я отправляю игру ios в магазин приложений.

xcode выдает ошибку. Неправильное использование рекламного идентификатора [IDFA]. Ваше приложение содержит API идентификатора рекламы [IDFA], но вы не указали его использование на странице "Подготовка к загрузке" в iTunes Connect.

Как это исправить? Любая помощь приветствуется.

17 ответов

Решение

Вы можете загрузить любое приложение с тем же bundleID. Когда вы закончили загрузку, вы можете отклонить двоичный файл, и в следующий раз, когда вы измените статус на Готов к загрузке, не забудьте проверить [IDFA].

Теперь все пришло в свое обычное состояние. Просто загрузите свой двоичный файл, как вы это делали в то время, и широко классифицируйте IDFA по двум категориям:

  1. издатель: Вы используете стороннюю библиотеку рекламных сетей для показа рекламы. Выберите 1-й вариант в IDFA -> "Служить рекламой в приложении". Вы являетесь издателем, так как вы показываете рекламу, но не выполняете рекламу для своего собственного приложения.

  2. Рекламодатель. Вы используете сторонние библиотеки для отслеживания конверсий для своего приложения, а также для отслеживания "целей" в своем приложении. Вы напрямую не показываете рекламу в своем приложении. Выберите 2-й и 3-й вариант в IDFA -> "Приписать установку этого приложения к ранее показанной рекламе". И "Приписать действие, выполненное в этом приложении, к ранее размещенной рекламе".

  3. Смешанный: вы отслеживаете конверсии для своего приложения, а также отображаете рекламу в своем приложении. Выберите все три варианта.

Необходимо проверить "Да" на странице "Подготовка к загрузке":введите описание изображения здесьНо когда вы отметили "Нет", вы застряли с этой новой версией в iTunes Connect и не можете повторно войти на страницу "Подготовка к загрузке" или удалить новую версию.

На данный момент кажется, что ваше приложение навсегда заблокировано на старой версии, когда возникает эта ошибка. Apple должна это исправить!

  1. Удалите папку библиотеки Google Analytics из вашей ссылки (Google Analytics использует [IDFA])
  2. Удалить AdSupport Framework из вашей справки
  3. Удалите iADSupport Framework из вашей справки
  4. попробуйте загрузить снова

Это сработало для меня прямо сейчас.

кстати, включение этой опции не помогает нам

Согласно этой статье, которая была опубликована издателем, который поделился тем, что Apple сказала им после получения той же самой проблемы.

Apple посоветовала издателю проверить код, в том числе сторонние библиотеки, чтобы удалить любые случаи следующего:

класс: ASIdentifierManager

селектор: AdvertisingIdentifier

Framework: AdSupport.framework

У меня была та же проблема, и я искал вышеупомянутые экземпляры... я нашел метод с ними в API Playhaven, и после того, как я прокомментировал этот раздел, я не получил ошибку снова.

Обновление API Playhaven, возможно, также исправило это, но я не уверен... я просто выбрал "быстрое исправление".

Вам просто нужно загрузить любое приложение с тем же идентификатором пакета и без поддержки рекламы, а затем отклонить бинарный файл и проверить новые параметры рекламы. Да. Тогда вы можете отправить свое приложение без проблем.

Сайт iTunesConnect изменил рабочий процесс, когда вы обрабатываете это предупреждение. Вам нужно будет загрузить свое приложение с этим предупреждением (по крайней мере, с XCode 5.1.1).

В iTunesConnect вы теперь выбираете свою сборку после загрузки из XCode. После выбора сборки, а затем нажав "Отправить на проверку", вы получите подсказки, которые вы ранее установили при подготовке к загрузке (в частности - "Идентификатор рекламы").

Я также столкнулся с этим предупреждением при проверке приложения с помощью iTunes connectвведите описание изображения здесь и я использовал FacebookSDK.framework, который был загружен с Ref Link. В 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 и загрузил фреймворк Facebook из Ref Link. Я решил это предупреждение с помощью этого способа и успешно загрузил приложение.

А также посмотрите этот вопрос о стеке Link, чтобы избежать отклонения, найти и удалить нежелательные рамки.

Если вы выберете "Да" для IDFA на странице загрузки iTC, убедитесь, что ваш AdBlocker отключен в настройках Safari, в противном случае вы получите ошибку "Вы должны выбрать, как ваше приложение использует IDFA", когда вы нажмете "Продолжить". msgstr ", но не дает возможности выбрать это использование.

Если ваш adblocker выключен и все работает как надо, HTML-страница раскроется, чтобы показать варианты для выбора, внизу.

У меня та же проблема.

Наше приложение просто использует библиотеки googleAnalytics/googleMaps и библиотеку TestFlight. Я застрял с новой версией на Itunes Connect с флагом NO на IDFA.

Мы не можем удалить эти библиотеки, потому что приложение больше не будет правильно компилироваться.

Какое решение? Просто создайте пустое приложение с тем же идентификатором пакета и идентификатором версии, загрузите его в itunes connect и затем остановите публикацию? В самом деле?

Спасибо:)

В качестве полного подробного ответа на то, что @iDurocher сказал:
1. Убедитесь, что у вас есть хотя бы одна активная предварительная сборка после загрузки бинарного файла (выберите предварительную версию, а затем убедитесь, что есть одна сборка, запускаемая по клику, обратите внимание, что для ее обработки может потребоваться полчаса).
2. Вернитесь к экрану Версии и выберите строить добавить загруженную сборку.
3. Нажмите Отправить для проверки сейчас, после чего вас спросят о IDFA.

Если проблема связана только с Google Analytics SDK для iOS, вы можете обновить ее: в новой версии удалены зависимости из AdSupport Framework, а следовательно, и из IDFA.

Отклонить двоичный файл.

-Загрузить бинарный файл снова.

-Проверьте опцию "Использует ли это приложение рекламный идентификатор (IDFA)"

и вы сделали.

Facebook iOS SDK также использует IDFA. Как я понимаю, IDFA следует использовать только в рекламных целях, согласно информации в iTunes Connect. Я удалил его, и теперь все в порядке.

У меня была та же проблема с Admob (GoogleMobileAds) SDK при проверке приложения с помощью Xcode.

Мое решение было:

  1. Распространите приложение с Xcode на iTunes Connect

  2. Отключите Adblock в Safari для страницы iTunes Connect

  3. Приложение было объявлено недействительным из-за неправильного использования IDFA в iTunes Connect.

  4. У меня снова есть страница "Подготовка к загрузке"

  5. Я включил использование рекламного идентификатора на этой странице и т. Д.

У меня была та же проблема, и я решил загрузить приложение, несмотря на предупреждение IDFA. Затем IPA отклоняется, и вы можете начать заново с включенной страницей "Подготовка к загрузке". Обязательно отметьте "Да" в разделе "Идентификатор рекламы" в разделе "Подготовка к загрузке".

Вам нужно изменить код на 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"];
//    }
Другие вопросы по тегам