Рис. 15.5.Активизация пуш-уведомлений для App ID
5. Как только вас устроит конфигурация идентификатора приложения (рис. 15.6), отправьте ваш App ID в Apple.
Рис. 15.6.Создание идентификатора приложения с поддержкой пуш-уведомлений
6. После того как настроите все детали конфигурации идентификатора приложения, перейдите в раздел Provisioning Profiles (Профили инициализации) вашего iOS-портала.
7. Создайте профиль инициализации для разработки (Development). Позже вы можете создать и другие профили — Ad Hoc и App Store, так что об этом не волнуйтесь. Когда будете готовы отправить ваше приложение в App Store, можете просто вернуться к этому шагу и сгенерировать профили Ad Hoc и App Store.
8. Убедитесь, что новый профиль инициализации для разработки приложения связан с идентификатором приложения, который вы сгенерировали ранее. Это первый вопрос, который у вас попытается выяснить система при генерации профиля инициализации.
9. Когда профиль будет готов, скачайте его и перетащите в программу iTunes на своем компьютере, чтобы установить. При установке профиля не делайте двойных щелчков на нем. При двойном щелчке кнопкой мыши имя файла установленного профиля будет сброшено и заменено хеш-именем MD5, по которому файл очень сложно идентифицировать на диске. Если вы аккуратно перетащите профиль в iTunes, то iTunes установит профиль под его оригинальным именем.
10. В Xcode в настройках сборки вашего приложения просто выберите сборку в соответствии с тем профилем, который только что создали. Убедитесь, что при разработке (схема Development) вы используете именно этот профиль, а затем примените в схеме Release (Релиз) профиль App Store или Ad Hoc, созданием которых займетесь позже.
11. Перетащите ваш профиль инициализации в текстовый редактор для OS X — например, в TextEdit. Найдите в файле профиля ключ Entitlements. Весь этот раздел моего профиля инициализации выглядит так:
Entitlements
application-identifier
F3FU372W5M.com.pixolity.ios.cookbook.PushNotificationApp
aps-environment
development
get-task-allow
keychain-access-groups
F3FU372W5M.*
12. Создайте новый PLIST-файл для вашего проекта в Xcode, назовите этот файл Entitlements.plist. В Xcode щелкните на этом файле правой кнопкой мыши, выберите Open As (Открыть как) и далее Source Code (Исходный код). Содержимое вашего файла изначально будет выглядеть вот так:
13. Поместите разрешения вашего профиля инициализации прямо в файл Entitlements.plist, чтобы его содержимое выглядело вот так:
application-identifier
F3FU372W5M.com.pixolity.ios.cookbook.PushNotificationApp
aps-environment
development
get-task-allow
keychain-access-groups
F3FU372W5M.*
Значения, приведенные в рассматриваемых здесь листингах, относятся к профилям, которые создал я. В вашем профиле будут другие значения и, конечно же, будет другой идентификатор приложения (App ID). Поэтому внимательно выполните предыдущие шаги, чтобы правильно создать идентификатор вашего приложения и профиль. Потом возьмите разрешения из своего профиля и вставьте их в файл Entitlements.plist вашего проекта.
14. Далее перейдите в настройки сборки вашего проекта. В разделе Code Signing Entitlements (Разрешения для подписания кода) введите значение $(SRCROOT)/$(TARGET_NAME)/Entitlements.plist (если создали файл разрешений в целевом каталоге проекта) или $(SRCROOT)/Entitlements.plist (если создали файл разрешений в корневом каталоге, включающем в себя весь исходный код). Если не знаете, какой вариант выбрать, просто попробуйте оба этих значения, попытайтесь собрать проект с каждым из них. Если Xcode сообщит, что не может найти файл разрешений, поставьте второе значение, и оно сработает. Настройка сборки Code Signing Entitlements (Разрешения для подписания кода) требует указания относительного пути, идущего к файлу разрешений от корневого каталога исходного кода. Поэтому, если вы поместите файл разрешений в какой-то другой каталог, вам потребуется выстроить этот путь вручную, а потом записать полученный путь в это поле.
15. Соберите проект и убедитесь, что Xcode не выдает никаких ошибок. Если получите сообщение о какой-либо ошибке, то, вероятно, дело в том, что вы задали неверный профиль инициализации либо указали в настройках сборки неверный путь к файлу разрешений для подписания кода.
16. В делегате вашего приложения вызовите метод registerForRemoteNotificationTypes:, относящийся к классу UIApplication, а затем передайте этому методу значения UIRemoteNotificationTypeAlert, UIRemoteNotificationTypeBadge и UIRemoteNotificationTypeSound, как показано далее:
Читать дальше
Конец ознакомительного отрывка
Купить книгу