Xcode 8 "право aps-environment отсутствует в подписи приложения" при отправке
У меня есть приложение, которое мы представили десятки версий за последние 6 месяцев, и мы используем APNS. Я получил следующее письмо от Apple после обновления до Xcode 8
уважаемый разработчик,
мы обнаружили одну или несколько проблем с вашей недавней доставкой для Функция app_name. Ваша поставка была успешно, но вы можете исправить следующие проблемы в вашем следующая поставка:
отсутствует право уведомления толчка - ваше приложение включает в себя API Служба Push-уведомлений Apple, но право aps-environment отсутствует в подписи приложения. Чтобы решить эту проблему, убедитесь, что ваш Идентификатор приложения включен для push-уведомлений на портале подготовки. Затем подпишите приложение с помощью профиля подготовки распространения, который включает право aps-environment. Это позволит создать правильный подпись, и вы можете повторно отправить приложение. См. раздел "подготовка и Развитие " в локальном и Push-уведомлении Руководство по программированию для подробная информация. Если ваше приложение не использует Push-уведомление Apple обслуживание, никаких действий не требуется. Вы можете удалить API из будущего представления, чтобы остановить это предупреждение. Если вы используете сторонний фреймворк, возможно, Вам потребуется связаться с разработчиком для получения информации об удалении ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС.
после того, как вы исправили проблемы, вы можете использовать Xcode или приложение Загрузчик для загрузки нового двоичного файла в iTunes Connect.
с уважением,
команда App Store
Что странно, я пошел в developer.apple.com -> Сертификаты, Идентификаторы И Профили и у моего AppId все еще есть Push-уведомления. Я не делаю ничего другого, то я когда-либо делал на нем так любопытно, если обновление Xcode 8 сломал что-то. Есть идеи?
кстати: ссылка, которую они поставили для руководства по программированию Push-уведомлений, была сломана в электронной почте, так что это не очень хорошо знак.
11 ответов:
очень легко на самом деле. По какой-то причине он был отключен на Xcode 8, но перейдите к Targets - > Capabilities и убедитесь, что Push-уведомления все правильно на этом представлении. Для меня это было "исправить меня", я должен был нажать, и вуаля.
из Xcode заметки:
Xcode 8 не копирует автоматически право aps-environment из профилей подготовки во время сборки. Такое поведение является преднамеренным. Чтобы использовать это право, либо включите Push-уведомления в области возможностей редактора проектов, либо вручную добавьте это право в файл прав. (28076333)
Это большое изменение, так как всегда было довольно странно, что aps-среда право не требовало plist, но многие другие сделали.
для тех из вас, кто не хочет просто слепо нажимать "Fix Me "и в настоящее время не имеет файла прав, это просто файл plist, на который ссылаются в настройках сборки вашего проекта в разделе"права подписи кода"
произошло изменение в Xcode 8, где ваши права больше не исходят из идентификаторов приложений, а из возможностей, выбранных в вашем целевом приложении. Итак, как сказал Unome (OP), вы должны проверить, что Push-уведомления включены.
для меня это была не кнопка "исправить меня", но у меня было два файла прав (один для разработки и один для распространения). Переключение функции Push-уведомлений добавит
aps-environment
ключ - значениеdevelopment
- в файл прав на разработку, но он не добавит его в файл прав на распространение. Копирование того же ключа в дистрибутив работало, чтобы избавиться от предупреждающего письма при загрузке в iTunes Connect.для большинства проектов должно быть достаточно включить Push-уведомления, или если он уже включен, но ключ не находится в правах, попробуйте отключить его и снова включить.
после дня борьбы с Xcode 8 мы не могли понять, почему
aps-environment
разработка не была добавлена в наши отладочные сборки. Он отсутствовал в разделе прав в построенном приложении для отладки тестирования... несмотря на то, что мы включили новую возможность и файл прав существовал. Проблема заключается в том, что файл прав должен быть установлен для любого SDK в настройках сборки Xcode для прав отладки.
Я получил то же самое письмо от Apple, используя XCode 7.3.1. Что я сделал, чтобы решить проблему:
- В разделе возможности > установите PUSH-уведомление, как указано в ответе @ Bruce Tsai.
- В разделе Build-Settings > Code Signing > Code Signing Identity установите сертификат разработчика для отладки и сертификат распространения для выпуска, как показано на рисунке:
использование Xcode 9 push-уведомлений было включено.
Я попытался отключить / повторно включить Push Notification возможности. (не работает)
Я попытался отключить / повторно включить автоматическое управление подписью. (не работает)
получается, пришлось удалить и повторно добавить мои профили подготовки. (см. здесь как это сделать) возможно, Вам придется отключить/снова включить автоматическое управление подписью после отделения больницы.
Если вы используете фреймворки Firebase и не используете push-уведомления, есть два решения 1. просто смиритесь с сообщением "проблема", которое отправляется всей вашей команде каждый раз при загрузке двоичного файла. Приложение по-прежнему будет приниматься в качестве представления до тех пор, пока вы на самом деле не используете уведомления, которые вы можете игнорировать предупреждение. или 2. сделайте это:https://stackoverflow.com/a/46802075/7529450 . Это позволит удалить раздражающее уведомление по электронной почте, а также получить принято в качестве подчинение.
для меня проблема была в том, что было два файла прав:
Entitlements-Debug.plist
иEntitlements-Release.plist
. И только один из них (Debug) имеет необходимые настройки в нем.изменение нескольких значений Настройки Сборки > Подпись > Права Подписи Кода один
MyAppName/MyAppName.entitlements
и затем повторное включение Функции > Push-Уведомления переключатель сделал трюк для меня.надеюсь, что это помогает.