Как исправить «не найдена допустимая строка прав доступа« aps-environment »для приложения» в Xcode 4.3?

153

Я очень старался создать простое приложение для iOS, которое могло бы получать push-уведомления. Единственная причина, по которой я это делаю, - это установить процедуру, которую могли бы использовать некоторые другие члены команды, и они не смогли найти актуальную, рабочую версию таких инструкций в других местах в Интернете. Наш магазин довольно новый для iOS разработчика, лично я совершенно неопытен с iOS dev и Xcode. Я наткнулся на десятки учебных пособий, статей и сообщений о проблемах от Apple и других стран, и я чувствую, что, возможно, уже почти ...

Вот где я должен (заметьте, что я использую Xcode 4.3 и пытаюсь первоначально развернуть только на iOS 5.1, и я понимаю, что некоторые вещи могли измениться недавно по сравнению с более ранними версиями Xcode, но опять же, я новичок для всех это - и нахожу это совершенно запутанным и запутанным):

1) У меня есть профиль на моем iPhone, на котором включена функция Push

2) В моем тестовом проекте XCode я выбрал этот профиль обеспечения в качестве идентификатора подписи (в Настройках сборки> Подписывание кода)

введите описание изображения здесь

3) У меня есть идентификатор пакета в разделе «Сводка и информация»> «Пользовательские целевые свойства iOS», установленный правильно * (я думаю ??)

4) У меня есть registerForRemoteNotificationTypes, вызываемый в didFinishLaunchingWithOptions моего делегата

5) У меня есть didRegisterForRemoteNotificationsWithDeviceToken и didFailToRegisterForRemoteNotificationsWithError в моем делегате, настроенный для регистрации токена устройства или ошибки соответственно

6) У меня включена опция Enable Entitlements в разделе Summary.

7) Прямо под этим выбранный файл прав - Tinker6 (название моего тестового проекта), который был сгенерирован автоматически, когда я установил флажок «Включить права».

8) В файле Tinker6.entitlements у меня есть следующее (которое я собрал правильно, основываясь на нескольких разных постах по всему Интернету, но на котором я не могу найти ничего определенного от самой Apple):

введите описание изображения здесь

обновленный

9) Кроме того, я попробовал все это без файла прав и получаю по существу тот же результат.

10) Содержимое моего файла mobileprovision содержит права должным образом (я зашифровал номер и домен, но по структуре тот же):

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ конец обновления

Когда я пытаюсь запустить это на моем устройстве, я получаю следующую ошибку в выводе XCode:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

Я попытался установить get-task-allow на NO, aps-environment для производства, все четыре возможные комбинации, тоже самое.

Как я могу пройти это? Где полная документация по этому вопросу?

- дальнейшая история следует -

* Что касается идентификатора пакета, мне все еще неясно, как это следует устанавливать в отношении идентификаторов приложений и идентификаторов профилей в профиле Provisioning. На портале Provisioning под идентификаторами приложений у меня есть это (опять же, шифрование номера и домена):

введите описание изображения здесь

И два комплекта идентификатора пакета установлены, у меня есть это:

введите описание изображения здесь введите описание изображения здесь

Я совсем не уверен, что они верны, или нужно установить один или оба параметра на 12355456A7.com.whwhat.tinker, хотя я пробовал это ранее в процессе, но безуспешно ...

Заметьте, я понимаю, что существует много постов с похожими заголовками, однако все они, похоже, устарели на основании названий файлов и тому подобного, а также того факта, что ни одно из решений не представляется полезным. Я надеюсь, что более высокий уровень детализации, который я дал, гарантирует качественный ответ. Я, вероятно, назначу вознаграждение как можно скорее, и, если вы дадите качественный ответ, который приведет к решению, я назначу вам вознаграждение, а также продвигаю ваш ответ через твиттер и мой блог. Особенно, если вы публикуете действительно хорошую публикацию «вот точные 500 шагов, необходимые для работы простого приложения push-уведомлений, включая подготовку и прочее» в вашем блоге или что-то еще.

JWL
источник

Ответы:

94

Если вы создали свой профиль обеспечения до настройки app IDдля push, попробуйте восстановить профиль обеспечения.

Портал обеспечения iOS -> Подготовка -> Ваш сертификат -> РЕДАКТИРОВАТЬ -> Внести изменения -> Загрузить новую подготовку

Работал на меня. Теперь я могу использовать толчок.

очь
источник
Можете ли вы быть более точным в отношении того, что именно влечет за собой «восстановление профиля обеспечения»? Это шаг в XCode, в Provisioning Portal, где? Спасибо!
JWL
2
В портале. Просто добавьте или удалите устройство, и ваша подготовка будет сгенерирована. После этого дважды щелкните и установите его в связку ключей.
elp
извините, если я плотный, но добавить / удалить его под устройства? Или где-то ниже фактического профиля обеспечения, о котором идет речь, и если да, то где именно?
JWL
Добавление или удаление устройств - это хитрость для восстановления вашей инициализации. Чтобы использовать push-уведомление, вам необходимо создать его заново, поскольку оно связано с идентификатором приложения и push-сертификатом.
elp
69

Прежде всего, вам не нужен файл разрешений, если вы не добавляете пользовательские пары ключ / значение, которых нет в профиле обеспечения. Когда ваше приложение будет создано, все права из профиля обеспечения будут скопированы в приложение.

Учитывая, что вы все еще видите сообщение об ошибке о пропущенных правах, я могу только предположить, что параметры подписи кода не верны в настройках сборки.

Необходимо убедиться, что для конфигурации «Отладка» выбран правильный профиль, и для безопасности вы выбрали правильный профиль для «Отладки» и дочернего узла с меткой «Любой iOS SDK»:

введите описание изображения здесь

Несмотря на то, что на этом снимке экрана показан выбранный профиль «Автоматический разработчик», в раскрывающемся списке выберите нужный профиль обеспечения, просто для целей тестирования. Возможно, Xcode автоматически выбирает профиль, отличный от того, который вы хотите.

Также обязательно сделайте чистую сборку, полностью удалите приложение с вашего устройства и т. Д. Это просто для того, чтобы убедиться, что у вас не осталось какого-то старого пуха.

Майк Веллер
источник
Я думаю, что в моем посте № 2 он настроен правильно, хотя я добавил поясняющий скриншот для проверки. Я также попытался полностью удалить приложение и оставить его выключенным на 2 дня по рекомендации, которую я где-то видел, что для сброса некоторой информации требуется день (да, я хватаюсь за соломинку !?). Но когда вы говорите: «Вы должны убедиться, что для конфигурации« Отладка »выбран правильный профиль», что именно вы имеете в виду - где я могу выбрать это?
JWL
Если вы нажмете на часть «iPhone Developer», или на то, что установлено в качестве текущего значения, вы увидите выпадающий список всех профилей обеспечения, о которых знает Xcode. Убедитесь, что выбран правильный, или что пункт «Автоматический разработчик» выбирает правильный. Раскрывающийся список должен показать вам все.
Майк Веллер
И вы уверены, что у вас есть последний профиль обеспечения? Может быть, у вас старая версия, до того, как push был включен?
Майк Веллер
2
Ну да, я верю в это. Чтобы получить новый профиль обеспечения, я сделал в Xcode Organizer удаление профиля как из библиотеки, так и с устройства, а затем снова на экране библиотеки нажал кнопку «Обновить». Это потянуло его обратно с портала подготовки. Затем я добавил это на устройство. И, как показано выше, XML-содержимое файла mobileprovision показывает правильные объекты
jwl
3
Ах, прости. Там должно быть -до пути: codesign -d --entitlements - /path/to/my.app. На этом этапе также стоит дважды проверить, что вы находитесь в каталоге Debug-iphoneos, так как «Show In Finder» иногда может привести вас в неправильное место.
Майк Веллер
64

Я сталкивался с этой проблемой в Xcode 8. Вы должны включить Target - >abilities -> push-уведомления. Проверьте скриншот.

введите описание изображения здесь

DipakSonara
источник
1
Это поможет мне !!!! Просто нажмите кнопку ... решая мою проблему, которую я отлаживал часами ... Xcode8 тоже.
Век Сяо
3
OMG спасибо! Давай Apple, дай нам более разумное сообщение об ошибке!
Ферран Майлинч
Xcode 8 отключил Push-уведомления для моего приложения, поэтому это решение сработало.
Кевин
1
Спасибо, я должен был выполнить другие шаги настройки 3 раза, прежде чем я нашел это. Я чувствую себя идиотом, но также и из-за плохих инструментов, позволяющих решить эту проблему.
Коллин Флинн
ты спас мой день, приятель!
Оскарко
47

Самый простой способ сделать это из ваших учетных записей с Xcode:

Перейдите через Xcode -> Настройки -> Выберите вкладку Аккаунты -> Просмотр сведений -> Нажмите кнопку обновления внизу слева -> Готово.

Постройте снова, и это должно работать.

ooxio
источник
19

Хорошо, я столкнулся с проблемой раньше. Поскольку push-уведомление требует реализации на стороне сервера, для меня воссоздание профиля не было вариантом. Поэтому я нашел это решение БЕЗ создания нового профиля обеспечения.

XCode неправильно выбирает правильный профиль обеспечения, хотя мы выбираем его правильно.

Сначала зайдите в органайзер. На вкладке «Устройства» в разделе «Предоставление профиля из библиотеки» выберите нужный профиль, который мы пытаемся использовать. Щелкните правой кнопкой мыши и выберите «Показать профиль в Finder».

введите описание изображения здесь

Правильный профиль будет выбран в открывшемся окне Finder. Обратите внимание на имя.

введите описание изображения здесь

Теперь перейдите в Xcode> Log Navigator. Выберите фильтр для «Все» и «Все сообщения». Теперь на последнем этапе (Build Target) найдите шаг под названием «ProcessProductPackaging», разверните его. Обратите внимание на имя профиля обеспечения. Они НЕ должны совпадать, если у вас есть ошибка. введите описание изображения здесь

Теперь в окне Opened Finder удалите мошеннический профиль обеспечения, который использует XCode. Теперь строить снова. Ошибка должна быть устранена. Если нет, повторите процедуру, чтобы найти другой мошеннический профиль, чтобы удалить его.

Надеюсь это поможет.

Максимум
источник
Это была моя ошибка, но я исправил это, используя этот метод. Я случайно вставил в информационное окно другой идентификатор, из которого я сгенерировал сертификат.
JavaCoderEx,
18

Ответ был таков: начните все сначала, сделайте все то же самое, но создайте новый профиль обеспечения и установите его. Это сработало. Проверка всех деталей (права на предоставление услуг мобильной связи) выглядит точно так же, как и все в моем вопросе здесь. Но сейчас это работает. Apple: WAT?

Конечно, было бы очевидно сделать это, если бы можно было удалить профили обеспечения. Но так как это невозможно, я не хотел загромождать нашу команду кучей тестовых профилей. Тем не менее, в конце концов потерял терпение и все равно попробовал, и все получилось. Whatevs.

JWL
источник
Создание нового профиля и «загрязнение» старого, как сказано в этом другом SO-вопросе, сработало для меня: stackoverflow.com/questions/5681172/…
scurioni
Все, что мне нужно было сделать, это удалить существующий профиль обеспечения из портала и воссоздать его. Вы можете удалить профили сейчас после обновления, поэтому не нужно создавать новый идентификатор приложения.
odyth
Новый профиль обеспечения с тем же идентификатором приложения и сертификатом распространения исправил проблему для меня. +1 :)
Азик Абдулла
18

Удалите старый профиль обеспечения из XCode в Организаторе.

Затем сгенерируйте новый профиль обеспечения для того же идентификатора пакета на портале обеспечения iOS (после того, как вы включили push).

Импортируйте новый профиль обеспечения в XCode, установите его в настройках сборки приложения.

Сборка, запуск, все работает.

Я только что это сделал.

От ошибки до успеха у меня ушло 10 минут.

user1006117
источник
Это тот, который работал для меня тоже. Редактирование старого профиля обеспечения и загрузка не работали для меня. Спасибо!
пражет
В качестве полезного дополнения, вместо того, чтобы получить новый профиль обеспечения, я просто смог удалить старый
ritmatter
1
Я очень рекомендую не делать это вручную. Используйте github.com/fastlane/PEM .
фатухоку
16

XCode 6.1.1 и несколько учетных записей разработчиков Apple

Еще один ответ на этот и без того всеобъемлющий микс: сегодня я снова столкнулся с этой проблемой, и на этот раз это было связано с тем, что у меня было несколько учетных записей Apple. Мне нужно было сначала добавить 2-ую учетную запись разработчика в XCode> Настройки> Учетные записи> +

Убедитесь, что функция push-уведомлений включена

Затем мне нужно было явно включить встроенную покупку в приложении (мне не нужно было делать это ранее). XCode> (окно приложения)> Targets> Capabilities> In-App Purchase ON (и на этом этапе мне дали возможность выбрать правильный сертификат)

Обратите внимание, что я уже добавил сертификат с поддержкой Push, дважды щелкнув его в Finder.

введите описание изображения здесь

крис
источник
Я ломал голову над этим, я думаю, когда я переключился на бета-версию Xcode 8, он отключил мой переключатель push-уведомлений или что-то в этом роде. Спасибо
inVINCEable
Спасибо, вот почему у меня была эта проблема. Мой идентификатор приложения включен для покупки в приложении, игрового центра и т. Д., Но в XCode / возможностях они все отключены раньше, нет проблем. С тех пор, как обновлен до Xcode 8 у меня возникла эта проблема. После включения IAP и игрового центра в Xcode проблема исчезла!
Итан Лонг,
11

(Xcode 5) Хорошо, потратив час, я решил свою проблему. Даже если вы повторно сгенерируете файл обеспечения в Xcode 5, вы должны вручную обновить свою учетную запись. Я только изменил файл обеспечения во вкладке Организатора, который не работал, XCode продолжил сборку со старым файлом обеспечения.

Так что иди в

Xcode> Настройки> Аккаунты> Просмотр сведений (выберите аккаунт)

Затем обновите ваши файлы обеспечения.

Омер Фарук Алмалы
источник
7

Моя проблема состояла в том, что я просто подписывался с помощью профиля подстановочного знака, управляемого XCode.

После того, как я создал профиль для конкретного приложения (и загрузил его, дважды щелкнул по нему и убедился, что мои настройки сборки ссылались на него), я успешно получил токен устройства APNS.

Грэм Перкс
источник
У меня тоже была эта проблема. Xcode 5 довольно хорош в обновлении любых профилей обеспечения. Я добавил сервис APNS позже в разработке. Вы должны убедиться, что, как указано выше, ваш профиль обеспечения фактически является профилем, уникальным для приложения, над которым вы работаете, а не подстановочным.
Майкл
@ Майкл, как ты в этом уверен? Я попытался изменить его в настройках сборки (в разделе «Подпись кода»), для которых в данный момент установлено значение none. Когда я выбираю правильный профиль и строю, возникает ошибка, а затем происходит возврат к профилю подстановочного знака.
Ян Джеймисон
@ian, какую ошибку ты получаешь? Вы уверены, что это правильный профиль?
Майкл
Ах, я отсортировал его, мне нужно было повторно загрузить правильный сертификат на мой Mac. Это, кажется, добилось цели. Спасибо.
Ян Джеймисон
Рад это слышать. Это то, что я обычно делаю, когда кажется, что настройки верны. Повторите все сертификаты. Кажется, проблема больше раз, чем нет.
Майкл
6

У меня была такая же проблема, как и у всех остальных, и попробовал все вышеперечисленные трюки, ничего не получалось. Я даже удалил и начал заново с другой учетной записью разработчика.

Что сработало для меня в конце

  1. Сделайте как предложено выше и создайте APP ID
  2. Затем создайте профиль обеспечения
  3. НЕ используйте групповой профиль команды (управляемый xcode one) в разделе разработки обеспечения. Вам нужно создать отдельное приложение, используя тот идентификатор приложения, для которого вы сделали активными push-уведомления. Таким образом, при разработке будет встроена функция push-уведомлений.

Я не знаю, можете ли вы включить это для приложения с подстановочными знаками, но после попытки как минимум 12 различных предложений и потери нескольких дней, я надеюсь, что это кому-то поможет

Майкл Элламс
источник
2
Но это ничего не добавляет к существующим ответам, которые уже дают этот совет. Очевидно, что push-приложению нужен собственный профиль; в документах совершенно ясно, что подстановочный профиль не может быть использован для любого приложения, которому требуются специальные права.
Мэтт
1
Я сделал это, но мое приложение будет когда-либо только выбирать профиль подстановочного знака, я не могу принудительно выбрать тот, у которого включены push-уведомления.
Ян Джеймисон
3

Вы упоминаете профиль обеспечения, но я не вижу упоминания о Apple Push Profile.

Чтобы использовать Push, у вас должен быть push-профиль (есть два, один для разработки и один для выпуска). После того, как вы его создали, вам нужно убедиться, что он содержит соответствующие сертификаты (см. Раздел РЕДАКТИРОВАТЬ ниже).

Это отличный учебник, который проведет вас через все шаги:

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

Мне или кому-то еще потребовались бы часы и часы, чтобы написать подробный подробный ответ, подобный этому учебнику, поэтому я не собираюсь пытаться и не претендовать на награду, когда этот учебник уже существует.

PS Я считаю, что вам больше не нужны права, это наследство.

РЕДАКТИРОВАТЬ: Вы также должны проверить, что у вас есть необходимые профили на устройстве - перейдите в настройки, затем общие, профили, проверьте, перечислены ли ваши профили, особенно, конечно, профиль push. Вы также можете проверить это в разделе «Органайзер» XCode. В Организаторе есть два раздела, в которых говорится о профилях обеспечения - один в левом верхнем углу в библиотеке (это профили в XCode, которые вы используете для подписи и т. Д.). Также вы увидите раздел вызова профилей обеспечения для подключенного устройства это профиль, который установлен на телефоне. Если они не установлены на телефоне, вы можете загрузить их с веб-сайта портала обеспечения, а затем нажать кнопку «Добавить» в нижней части окна «Органайзер».

На портале инициализации вы также должны убедиться, что в Apple Push Profile включены сертификаты: - нажмите Provisioning в левом меню - вы увидите список своего профиля, выберите РЕДАКТИРОВАТЬ Apple Push-профиль - вы увидите В разделе сертификатов со списком разработчиков, тестеров и т. д., которые есть в вашем проекте, убедитесь, что для них установлен флажок. - вы также увидите раздел устройств, убедитесь, что устройство, на котором вы тестируете, было добавлено.

Если у вас есть старые профили в XCode или на устройстве, удалите их и загрузите / обновите / установите все новые профили с портала обеспечения

Gruntcakes
источник
Если права унаследованы, то почему я получаю сообщение с жалобой на отсутствие прав? Я уже следовал связанному учебнику к письму без удачи ... спасибо, хотя.
JWL
Кроме того, я добавил некоторую информацию о самом файле mobileprovision, который может быть полезен.
JWL
это правда, я даже не настраиваю .entitlement для успешной отправки уведомлений. Одна вещь, которая меня смутила, когда я делал это, это то, что мне нужно загрузить mobileprovision вручную, а затем перейти к настройкам сборки и изменить идентификацию подписи, чтобы она соответствовала только что загруженному, в моем случае, очевидно, Xcode выбирает подстановочный знак mobileprovision.
X Slash
Я тоже недавно получил сообщение об ошибках, касающихся прав, это красная сельдь, см. Ответ Майка Веллерса, именно это я и сделал в моем случае.
Gruntcakes
Я обновил ответ с некоторыми другими вещами для вас, чтобы проверить.
Gruntcakes
2

Столкнулся с этим же вопросом сам. Для меня проблема заключалась в том, что название моего продукта ($ TARGET_NAME) не было написано заглавными буквами, как в сертификате Apple. Например, у меня был com.companyid.APNDemo, тогда как сертификат Apple использовал com.companyid.apndemo.

Я изменил свою цель на строчные, и это сработало. Примечание. Подсказка для меня заключалась в том, что настройка подписи кода в настройках сборки была установлена ​​на мой сертификат разработчика по умолчанию; не профиль обеспечения APNTest.

Дэвид Каррико
источник
1

Многие из приведенных выше ответов являются правильными. Тем не менее, кажется, что есть несколько возможных ошибок при работе с этим.

У меня была проблема с заглавными буквами в моем идентификаторе приложения. Мой идентификатор приложения по какой-то причине не был написан заглавными буквами, но мое приложение было После того, как я воссоздал идентификатор приложения с правильной прописной буквой, все заработало гладко. Надеюсь это поможет. Хотя, чертовски разочаровывает.

PS, если это все еще не работает, попробуйте отредактировать поле идентификатора подписи кода вручную с помощью «edit». Измените вторую строку с именем правильного имени профиля обеспечения.

matrinox
источник
1

Мне потребовались часы, чтобы решить это. Учитывая, что кто-то использует собственные сценарии для подписи и упаковки, в то время как другие используют сам xcode, есть только один способ проверить, что закончилось в вашем приложении. Сбросить ваши права с

codesign --display --entitlements :- path/to/MyApp.app

и проверить aps-environmentи application-identifier.

dwery
источник
Я столкнулся с той же проблемой. Просто хотел спросить, есть ли путь к приложению для приложения, установленного на симуляторе?
Ajeet
нет, это путь скомпилированного приложения для реального устройства в каталоге сборки xcode.
августа
1

Эта ошибка может произойти, когда ваш сертификат истек.

Решение - обновить сертификат и подписать с ним заявку.

vahotm
источник
1

Вы должны убедиться, что в ваших профилях обеспечения ( https://developer.apple.com/account/ios/profile/ ) есть профиль распространения iOS.

Когда вы загружаете из xCode в App Store, убедитесь, что у вас есть aps-среда в разрешениях. Если нет, загрузите их из «Просмотр учетных записей» -> «Просмотр сведений» -> «Загрузить все».

Надав Б
источник
1

У меня была похожая проблема. Я прыгал между XCode 7 и 8 по разным причинам. Как только вы используете 8 для сборки, вам нужно будет использовать 8. Я просто использовал Xcode 8 и применил некоторые из предложенных выше изменений, и это сработало.

Брент Бруклер
источник
1

воссоздание предварительных файлов исправило все мои проблемы.

Фарис Мухаммед
источник
0

Кажется, что-то странное с «автоматическими» правами в Xcode 4.6.

Существует файл Entitlement.plist для каждого SDK по адресу:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

Обходное решение, которое я нашел, состояло в том, чтобы отредактировать этот файл и вручную добавить скрытый ключ aps-environment так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Затем Xcode генерирует правильный файл Xcent, который содержит ключ aps-environment по адресу:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

Вы можете определить местонахождение файла Xcent с помощью Навигатора журналов Xcode,
поищите «ProcessProductPackaging».

К сожалению, это единственный способ, который я нашел, который решает проблему .
(и, наконец, теперь можно правильно получить push-токен)

Просто интересно, есть ли другое более элегантное решение.
Пожалуйста, смотрите мой вопрос SO для более подробной информации об этом:
автоматическое разрешение Xcode 4.6 не работает - «нет действительной среды APS»

AmitP
источник
0

Перед удалением и регенерацией AppIDs / Profiles убедитесь, что в вашей библиотеке и устройстве установлены одинаковые (и правильные) профили.

Я начал видеть эту ошибку после перехода на новый компьютер. Push работал правильно до миграции.

Проблема была (не очень) в том, что я не импортировал профили в библиотеку Xcode на новом компьютере (в Organizer / Devices в Library-> Provisioning Profiles).

Заблуждение заключалось в том, что УСТРОЙСТВО уже имело правильные профили, и они отображались, как и ожидалось, в настройках сборки, поэтому там все выглядело правильно, но в БИБЛИОТЕКЕ XCode их не было, поэтому оно подписывало приложение с ... ?? ?

Родин Лясофф
источник
0

Это было то, что исправило это для меня. (Я уже пытался включить / выключить возможности, воссоздать профиль обеспечения и т. Д.).

В Параметры построения вкладки в Code Signing Возмещений , мой .entitlements файл не был ссылку для всех разделов. Как только я добавил его в раздел Any SDK , ошибка была устранена.

введите описание изображения здесь

mogile_oli
источник
0

Я опробовал все ответы, перечисленные здесь, но никто не решил мою проблему. В моем случае эта ошибка связана с моей глупой ошибкой в ​​создании Appid. Я использовал Wildcard идентификатор приложение вместо использования Явного App ID вызвал проблему

Если вы хотите, чтобы приложение получало удаленные уведомления (push-уведомления), вам нужно использовать явный идентификатор приложения , например com.tutsplus.push , вместо com.tutsplus. *

Пожалуйста, найдите ScreenShot, введите описание изображения здесь

arunjos007
источник