Приложениям не разрешен доступ к UDID, и они не должны использовать метод uniqueIdentifier UIDevice.

Не могли бы вы помочь мне решить эту проблему из магазина приложений?

Приложениям не разрешен доступ к UDID, и они не должны использовать метод uniqueIdentifier UIDevice. Обновите ваши приложения и серверы, чтобы ассоциировать пользователей с идентификаторами поставщика или рекламы, представленными в iOS 6. Если имена методов в вашем исходном коде соответствуют частным API-интерфейсам Apple, перечисленным выше, изменение имен методов поможет предотвратить пометку этого приложения в будущих представлениях., Кроме того, обратите внимание, что один или несколько из перечисленных выше API-интерфейсов могут находиться в статической библиотеке, которая была включена в ваше приложение. Если это так, они должны быть удалены.

Если вы считаете, что это сообщение было отправлено по ошибке, и вы использовали API, опубликованные Apple, только в соответствии с указаниями, отправьте девятизначный Apple ID приложения вместе с подробной информацией о том, почему вы считаете, что вышеуказанные API были неправильно помечены, чтобы appreview@apple.com. Для получения дополнительной информации посетите страницу технической поддержки.

После устранения этих проблем перейдите на страницу сведений о версии и нажмите "Готово к загрузке двоичного файла". Продолжайте процесс отправки, пока приложение не получит статус "Ожидание загрузки". Затем вы можете доставить исправленный двоичный файл.

8 ответов

Найдите класс, который использует UDID по

(по терминалу в каталоге проекта)

find . | grep -v .svn  | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier

вы найдете классы, которые используют UDID, затем замените его и используйте UUID или замените его новым классом, если вы используете внешние классы

Использование устройства uniqueidentifier свойство в приложениях устарело в iOS 5.0 и запрещено в приложениях iOS 6 с 1 мая 2013 года. Вместо этого вы можете использовать identifierForVendor свойство доступно в iOS 6.0. Apple изменила API для решения проблем конфиденциальности.

Моя проблема с этим была из-за библиотеки adMob. Это было исправлено в adMob SDK 6.4.2. Из Google:

AdMob SDK для iOS использует рекламный идентификатор Apple (IDFA). SDK использует IDFA в соответствии с рекомендациями, изложенными в лицензионном соглашении на программу для разработчиков iOS. Разработчики должны убедиться, что они соблюдают правила лицензионного соглашения для программы для разработчиков iOS, регулирующие использование этого идентификатора.

У меня тоже есть эта проблема. Мой проект создавался с использованием Unity 3.5.4 и с использованием 3 различных плагинов.

Я создал пустой проект iOS с использованием Unity 3.5.4, построил проект xCode, попытка проверки: ошибка. Затем я построил проект xCode, используя 3.5.7, и проверка прошла успешно.

В этом пустом проекте не было плагинов, так что это не ошибка плагинов.

Один из моих плагинов работал только с Uniyt 3.5.4, поэтому сейчас я пытаюсь получить обновленную версию этого плагина, которая работает с 3.5.7, для отправки приложения.

Admob и ShareKit + Facebook были виновниками для меня.

Если вы используете HockeyApp, не забудьте удалить код, который проверяет необходимость обновления приложения, он использует UDID по умолчанию.

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

Admob 6.4.2, кажется, работает, просто была та же проблема, и теперь она решена... попробуйте получить ее здесь: http://dl.google.com/googleadmobadssdk/googleadmobadssdkios.zip

Я только что получил то же самое электронное письмо после отправки нашего приложения Tinyview в Apple App Store. Мы не используем UDID напрямую, но возможно, что к нему обращается библиотека, которую мы включили, например, Google Analytics.

Другие вопросы по тегам