Приложениям не разрешен доступ к 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, для отправки приложения.
Если вы используете HockeyApp, не забудьте удалить код, который проверяет необходимость обновления приложения, он использует UDID по умолчанию.
Еще лучше включить его в некоторые директивы препроцессора, чтобы он включался в ваши специальные сборки, но не в ваши производственные сборки.
Admob 6.4.2, кажется, работает, просто была та же проблема, и теперь она решена... попробуйте получить ее здесь: http://dl.google.com/googleadmobadssdk/googleadmobadssdkios.zip
Я только что получил то же самое электронное письмо после отправки нашего приложения Tinyview в Apple App Store. Мы не используем UDID напрямую, но возможно, что к нему обращается библиотека, которую мы включили, например, Google Analytics.