Я очень старался создать простое приложение для 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-уведомлений, включая подготовку и прочее» в вашем блоге или что-то еще.