Отсутствует Право На Push-Уведомление
У меня есть приложение для представления, когда он был отклонен, и я получил сообщение
отсутствует право на Push-уведомление - ваше приложение, похоже, регистрируется с помощью службы Push-уведомлений Apple, но подпись приложения права не включают право "aps-environment". Если ваш приложение использует службу Apple Push Notification service, убедитесь, что Ваш идентификатор приложения включено для Push-уведомления на портале подготовки и повторной отправки после подписания Приложения с профиль обеспечения распространения включает право" aps-environment".
Я проверил свою специальную подготовку, и там я нашел aps-среду и производство, однако, когда я открываю свою подготовку распределения, я не нахожу такого.
Это причина этого сообщения об ошибке и отказа apple, как я могу это исправить?
15 ответов:
Да, это причина отказа App Store. Если в вашем профайле ad-hoc provisioning есть ключ aps-environment, это означает, что ваше приложение настроено правильно на портале Apple Provisioning Portal. Все, что вам нужно сделать, это удалить профиль распространения магазина приложений на локальном компьютере, а затем повторно загрузить и установить профиль распространения с портала подготовки. Этот Новый должен содержать ключ aps-environment.
первый идентификатор приложения
убедитесь, что Ваш идентификатор push-уведомления включить в сторону производства
как показано на рисунке
Второй Сертификат
из производственного раздела создайте два сертификата с вашим идентификатором (push-уведомление включено)
App Store и Ad Hoc сертификат
Apple Push Notification service SSL (Sandbox) сертификат
Третий Профиль Подготовки
из раздела дистрибутива создать App Store профиль с вашим id
наконец-то
при загрузке Бина необходимо проверить, какой профиль подготовки используется и имеют много прав
это все случаи вызывают эту проблему надеюсь, что это будет полезно с вами
в XCode 8 вам нужно включить push на вкладке "возможности" на вашей цели, поверх включения всего на положениях и сертификатах: Xcode 8 "право aps-environment отсутствует в подписи приложения" на submit
мой блог об этом здесь.
Я получил это сообщение по другой причине - я отправил приложение через Xcode без предварительного создания профиля дистрибутива App Store специально для приложения. Я считаю, что Xcode автоматически использует профиль магазина приложений с подстановочными знаками, если он установлен. Но приложение использует уведомления толчка требует свой собственный профиль.
исправление заключается в создании нового профиля распространения App Store для приложения. Затем вы загружаете его, перетаскиваете на Xcode и изменяете настройки сборки проекта > Код Подпись > отпустите, чтобы использовать новый профиль.
для тех, кто сталкивается с этой проблемой, которые на самом деле используют уведомления толчка в своих приложениях:
наши push-сертификаты недавно истекали, поэтому мы создали новые сертификаты dev / prod push стандартным способом, описанным Apple (я не буду вдаваться в подробности здесь, есть много информации об этом во всем интернете при обновлении ваших push-сертификатов для еще одного года использования).
после этого, однако, вопрос в этом вопросе выскочил. Что бы мы ни делали, мы получил это письмо от Apple после отправки нашего приложения. Когда мы проверили настройки нашего профиля подготовки дистрибутива в центре участников Apple, все выглядело нормально (Push был включен для нашего идентификатора приложения для обоих prod / dev, и наш профиль подготовки дистрибутива все еще был связан с этим идентификатором приложения, мы буквально только что создали новые сертификаты push еще на один год, как это стандартная практика).
наконец, это то, что в конечном итоге решить его для меня:
- создать новый профиль подготовки распространения, указывающий на Ваш идентификатор приложения (оставьте свой текущий в tact)
- в Xcode обновите профили подготовки через Настройки > Учетные записи > выберите свою учетную запись > сведения > нажмите значок обновления
- вручную создайте файл plist прав для вашего приложения:
- меню Файл > Новый файл...
- выберите iOS > ресурс > список свойств
- назовите новый файл " foo.права " (как правило," foo " является целью имя)
- Нажмите кнопку ( + ) рядом с "файл прав", чтобы добавить элемент верхнего уровня (редактор списка свойств будет использовать правильную схему из-за расширения файла)
- убедитесь, что этот файл прав используется в настройках сборки вашей цели (Цель > настройки сборки > Поиск "прав", в CODE_SIGN_ENTITLEMENTS установите путь к файлу прав, который вы только что сделали)
- убедитесь, что профиль подготовки / подписи кода идентичности в вашей цели правильно установлен соответствующий профиль подготовки распределения / удостоверение подписи (это должно быть очевидно)
- Я не на 100% уверен, что это повлияло на него (это не должно быть, так как целевые настройки переопределяют настройки проекта, но я все равно это сделал), убедитесь, что профиль подготовки / подписи вашего проекта соответствует вашей цели
- в файле прав, который вы сделали, щелкните правой кнопкой мыши в пустом файле и выберите "Показать необработанные ключи / значения"
- добавить a новая запись в файл прав называется " aps-environment "и установите его значение в"production"
- одно ключевое замечание, если вы ранее использовали право keychain-access-groups, вы также захотите добавить этот ключ, потому что по какой-то причине он был очищен для меня при выполнении этого вручную. Убедитесь, что значение совпадает со значением, используемым в предыдущих сборках (вы можете найти значение, найдя предыдущую сборку в органайзере, пытаясь отправить в магазин приложений, выберите команда, затем перед отправкой приложения нажмите стрелку рядом со строкой" (X) права", чтобы развернуть права и увидеть значение права keychain-access-group.
- архивируйте свое приложение и попытайтесь отправить его до точки перехода к окончательной кнопке "Отправить". Вы должны увидеть, что это приложение теперь было построено с новым профилем подготовки, созданным в member center. Отмените это сейчас же.
- вернитесь в центр участников Apple и удалите новую подготовку профиль, созданный на шаге 1.
- вернитесь в Xcode, обновите список профилей подготовки еще раз, повторив Шаг 2.
- теперь снова архивируйте свое приложение, и вы должны увидеть, что приложение было построено со старым профилем подготовки распределения, который вы хотели использовать, и правильно имеет право на aps-environment. Подчинитесь, и все готово.
Я знаю, что это не так подробно, как должно быть, поскольку у него должны быть скриншоты, я попытаюсь обновить его скриншоты, когда я могу, но на данный момент я нахожусь в хрусте времени прямо сейчас и хотел получить суть того, что я там сделал. Существует также очень вероятный шанс, что некоторые или большинство шагов, которые я изложил, не нужны, я помещаю их здесь, потому что я их сделал, и они, возможно, привели к окончательному решению.
следуя ответу, данному @Vaiden, в Xcode 8 вы можете решить эту проблему, выбрав цель и нажав кнопку "исправить проблему". Конечно, вам все равно нужно настроить push-уведомления в Apple Developer portal (вы можете немного упростить процесс, используя новую опцию "автоматическое управление подписью", которая избавляет вас от необходимости загружать профили подготовки).
Я также столкнулся с этой проблемой даже Я вообще не использовал push-уведомления в моем приложении.Делая новый профиль подготовки также не работает для меня.То, что я сделал, было: -
1.Создайте новый сертификат только для ad hoc и App Store.
2.Затем создайте профиль распространения с этим сертификатом и интегрируйте профиль с Xcode.
затем вновь представленная сборка с этим профилем утверждена без любое предупреждение.
проверьте, что Ваш идентификатор приложения включен или не включен developer.apple.com в портале подготовки iOS Если он не включен,настройте свой Push SSL-сертификат для своего идентификатора приложения загрузите его, и переустановите в своем брелке еще раз, а затем загрузите свой профиль Distrubution установите в свой Xcode Liabrary
В моем случае, даже я создал приложение.профиль и установить его в xcode вручную, и когда я выбрал "показать в finder" и расположен встроенный.mobileprovision и проверил, чтобы убедиться, что aps-среда есть в файле, ошибка все еще была там.
затем я пошел в Центр разработчиков и обнаружил, что статус XC: myapp.профиль является недействительным. Я обновил его и установил XC: myapp.профиль и он работал нормально.
Я думаю, что xcode пытается управлять профилем, а вы необходимо проверить профиль подготовки при отправке двоичного файла в хранилище и убедиться, что он правильный. И, согласно другим ответам, это может быть вызвано по разным причинам, поэтому это может быть очень раздражающим.
обновление:
после того, как вы подписали с загруженным профилем и подтвердили, что
aps-environment
был там, когда вы пытаетесь представитьApp Store
, вы должны быть в состоянии изменить профиль и подпись кода сущности автоматически иiOS Developer
. Надеюсь, что это может быть улучшено в Xcode 7.
чтобы решить эту проблему для приложения expo 'ejected', я перешел на вкладку "возможности", включил push, а затем снова отключил его. В этом удалены настройки точек доступа APN "пособия" от .файл прав.
Это случилось со мной внезапно, потому что профиль распространения моего приложения истек. Вместо этого Xcode начал использовать профиль подстановочных знаков, в котором не было включено право push-уведомления. Я не получил никакого предупреждения. Исправление было простым; мне просто нужно было создать другой профиль распространения для моего приложения в Центре разработчиков Apple, загрузить его и дважды щелкнуть, чтобы установить в Xcode.
здесь есть несколько действительно хороших предложений.
ссылаясь на последний снимок экрана, предоставленный Mina, после первоначального архивирования моего приложения профиль подготовки, упомянутый во время загрузки, содержал подстановочный знак (XC.*). Это неправильно.
потребовалось немало усилий, чтобы решить эту проблему. Мне пришлось выполнить комбинацию предложений, которые предоставили Simon Woodside & Mina Fawzy.
Если у вас есть какие-либо существующие сертификаты и профили подготовки, связанные с вашим проектом, теперь было бы неплохо удалить их все локально и отозвать их все удаленно. Дать себе новый старт.
детальное предложение мины Фавзи превосходно. Выполнение предложения мины, если оно выполнено правильно, должно позаботиться о вас в интернете.
введите предложение Саймона. Две вещи мне нужно было проверить внутри моего проекта. Используя XCode, перейдите сюда:
ПРОЕКТ - > НАСТРОЙКИ СБОРКИ - > КОД Подписание
обзор Удостоверение Подписи Кода и Профиль Подготовки свойства. Убедитесь, что вы установили эти два свойства для имени вашего проекта. Не разрешайте XCode автоматически выбирать для вас и не используйте какой-либо общий идентификатор подписи кода (например, разработчик Iphone).
убедитесь, что вы действительно можете установить приложение на свои устройства, прежде чем принимать решение об архивировании.