Не найдена допустимая строка права "aps-environment" для приложения в app store
Итак, у меня есть это приложение под названием капельница, которое я выпустил около месяца назад, а затем обновление пару дней назад. Обновление добавило push-уведомления и несколько небольших настроек. Я протестировал его с помощью sandbox-apn, используя профиль разработки, и все отлично работало. Затем я переключил вещи на производство-apn и подтолкнул его к испытательному полету, снова все работало отлично. Как только я поставил обновление на рынок и запустил его, я заметил, что не получаю никаких новых push-регистраций на сервере. Я посмотрел на консоль регистрирует устройство и находит следующее:
Dec 4 17: 55 : 15 Ina-touch-it coffco[1210]: регистрация для удаленных уведомлений
4 декабря 17:55 : 15 Ina-touch-it SpringBoard[52]: для приложения 'Dripper' не найдена допустимая строка права 'aps-environment': (null). Уведомления доставляться не будут.
4 декабря 17:55: 15 Ina-touch-it coffco[1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}
Я немного смущен, потому что я думал, что производство-apn будет функция то же самое между ad-hoc и App store строит.
вот мой идентификатор приложения и его права -> http://i.stack.imgur.com/uf4pB.png
вот профиль подготовки для магазина приложений -> http://i.stack.imgur.com/AYOV5.png
8 ответов:
я исправил эту проблему следующим образом:
- перейти к Xcode "Preferences"
- перейдите на вкладку "Учетные записи"
- выберите мой идентификатор Apple ID и нажмите "Просмотреть сведения"
- нажмите на стрелку в левом нижнем углу, чтобы обновить
- Нажмите Кнопку "Готово"
и попробовать опять!
источник:
такие проблемы вызваны тем, что текущий профиль подготовки не содержит сведений APNS, так как профиль подготовки создается перед созданием сертификата APNS.
поэтому, чтобы решить проблему, создайте новый профиль подготовки и выберите профиль подготовки в Xcode. Тогда вы закончили.
кроме того, когда вы добавляете push, я считаю, что вы также обновили сертификаты в keychain.
У меня была та же проблема с использованием iOS 8.0 и выше версий; я не получил маркер устройства и выдавал ошибку: "нет допустимой строки права"aps-environment", найденной для приложения"
я исправил это, используя следующие шаги
- Я создал новый профиль подготовки для идентификатора приложения
- добавил его в xcode
- проект перейти к Xcode "настройки"
- перейдите на вкладку "Учетные записи" выберите мой идентификатор Apple ID и нажмите " Просмотр Подробности"
- выберите профиль подготовки
- нажмите на стрелку в левом нижнем углу, чтобы обновить
- Нажмите Кнопку "Готово"
и теперь запустить проект, безусловно, это будет работать.
Что касается Xcode 9, некоторые ответы устарели или неполны для решения этой конкретной проблемы.
вот шаги, чтобы следовать за мной:
1. Создайте профиль подготовки
(FCM не является обязательным условием для уведомления толчка, но их гиды удивительно ясно,вот ссылка)
чтобы протестировать приложение в процессе разработки, вам нужен профиль подготовки для разработки, чтобы авторизовать ваш устройств для запуска приложения, которое еще не опубликовано в магазине приложений.
- перейдите в Центр разработчиков Apple и войдите в систему.
- перейдите к сертификатам, идентификаторам и профилям.
- в выпадающем меню в верхнем левом углу выберите iOS, tvOS, watchOS, если он еще не выбран, а затем перейдите в раздел профили подготовки > все.
- Нажмите кнопку+, чтобы создать новый профиль подготовки.
- выберите приложение iOS Разработка как тип профиля подготовки, затем нажмите кнопку Продолжить.
- в раскрывающемся меню выберите идентификатор приложения, которое вы хотите использовать, а затем нажмите кнопку Продолжить.
- выберите сертификат разработки iOS для идентификатора приложения, выбранного на предыдущем шаге, затем нажмите кнопку Продолжить.
- выберите устройства iOS, которые вы хотите включить в профиль подготовки, а затем нажмите кнопку Продолжить. Убедитесь, что вы выбрали все устройства, которые хотите использовать тестирование.
- введите имя для этого профиля подготовки (например, пример профиля разработки приложений Firebase), затем нажмите кнопку Создать.
- Нажмите кнопку Загрузить, чтобы сохранить профиль подготовки на вашем Mac.
- дважды щелкните файл профиля подготовки, чтобы установить его.
2. Активируйте возможности Push-уведомлений
- перейти к редактору проекта, от официальный руководство
- в разделе "Возможности" активируйте Push-уведомление
по какой-то причине решение Вэй не работает для меня. При нажатии на Fix entitlements, Xcode сгенерировал два файла, и он все еще не работал, действительно сгенерированные файлы прав были пустыми.
Это было вызвано (по-видимому) тем, что PRODUCT_NAME проекта был довольно длинным и включал пробелы и буквы "ä" и "ö". После изменения его на короткую версию с английскими буквами исправление от Wei работало правильно.
Мне потребовалось некоторое время, чтобы выяснить, что вызывает отсутствие допустимой ошибки APS-environment entitlement. Проблема была в том, что их было двое .файлы прав в проекте XCode. Один из них-Платформа / ios//.права и еще один-platform/ios//Resources/.права и соответствующие права присутствуют в первом файле только тогда, когда XCode настроен на использование последнего. Я обновил последний файл вручную, и все начало работать. Другой вариант исправить это-изменить .права используются XCode. Это можно сделать в настройках сборки -- > Signing --> Code Signing Entitlements config param.
Я не уверен, почему есть два .файлы прав в XCode. Может быть, плагин cordova push создал второй (я разрабатываю гибридное мобильное приложение cordova)? И какое правильное место для этого .файл прав?