Я очень старался создать простое приложение для iOS, которое может получать push-уведомления. Моя единственная причина для этого - установить процедуру для использования некоторыми другими членами команды и не смогли найти обновленную рабочую версию таких инструкций в другом месте в Интернете. Наш магазин является довольно новым для iOS-разработчика, я лично полностью неопытен с iOS-разработчиком и Xcode. Я наткнулся на десятки учебных пособий, статей и сообщений о проблемах из Apple и в других местах, и я чувствую, что могу быть почти там...
Вот где я должен (обратите внимание, что я использую Xcode 4.3 и сначала пытаюсь развернуть только на iOS 5.1, и я понимаю, что некоторые вещи, возможно, недавно изменились в сравнении с более ранними версиями Xcode, но снова я новый для всего этого - и нахождение его полностью запутанным и запутанным):
1) У меня есть профиль обеспечения на моем iPhone, который имеет Push включен
2) В моем тестовом проекте Xcode у меня есть профиль профилей, выбранный как идентификатор подписи (в настройках сборки > Подпись кода)
3) У меня есть идентификатор пакета в разделе "Сводка и информация" > "Пользовательские свойства iOS Target", установленные правильно * (я думаю?)
4) У меня есть registerForRemoteNotificationTypes, вызываемый в моем делегате didFinishLaunchingWithOptions
5) У меня есть didRegisterForRemoteNotificationsWithDeviceToken и didFailToRegisterForRemoteNotificationsWithError в моем делегате, настроен для регистрации токена устройства или ошибки, соответственно
6) У меня есть Enable Enitlements, проверенная в разделе Summary.
7) Прямо под этим выбранным файлом прав является Tinker6 (имя моего тестового проекта), который был сгенерирован автоматически, когда я проверил Enable Entitlements
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 - разрешить NO, aps-environment для производства, все четыре возможные комбинации, одно и то же.
Как я могу пройти мимо этого? Где окончательная документация по этому поводу?
- следует следующий фон -
* Что касается идентификатора пакета, я все еще не понимаю, как это должно быть установлено в отношении идентификаторов приложений и идентификаторов профиля в профиле Provisioning. На портале Provisioning под идентификаторами приложений у меня есть это (опять же, скремблировало число и домен):
И установлен идентификатор пакета двух мест:
Я вовсе не уверен, что это правильно или нужно установить один или оба на 12355456A7.com.whatever.tinker, хотя я уже пробовал те, которые были ранее в этом процессе, без успеха...
Примечание. Я понимаю, что есть много сообщений с похожими заголовками, однако все они, похоже, устарели на основе названий файлов и так далее, и тот факт, что ни одно из решений не кажется быть полезным. Я надеюсь, что более высокий уровень детализации, который я дал, будет гарантировать качественный ответ. Я, скорее всего, назначу награду как можно скорее, и если вы дадите качественный ответ, который приведет к решению, я награжу вас щедростью, а также повышу ваш ответ через твиттер и мой блог. Особенно, если вы поставили перекрестный стол действительно хороший "вот точные 500 шагов, которые вам нужно, чтобы получить простое приложение для уведомления о нажатиях, включающее в себя подготовку и любую другую статью" в своем блоге или что-то еще.