Вход/Регистрация
iOS. Приемы программирования
вернуться

Нахавандипур Вандад

Шрифт:

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

10. В Xcode в настройках сборки вашего приложения просто выберите сборку в соответствии с тем профилем, который только что создали. Убедитесь, что при разработке (схема Development) вы используете именно этот профиль, а затем примените в схеме Release (Релиз) профиль App Store или Ad Hoc, созданием которых займетесь позже.

11. Перетащите ваш профиль инициализации в текстовый редактор для OS X — например, в TextEdit. Найдите в файле профиля ключ Entitlements. Весь этот раздел моего профиля инициализации выглядит так:

<key>Entitlements</key>

<dict>

<key>application-identifier</key>

<string>F3FU372W5M.com.pixolity.ios.cookbook.PushNotificationApp</string>

<key>aps-environment</key>

<string>development</string>

<key>get-task-allow</key>

<true/>

<key>keychain-access-groups</key>

<array>

<string>F3FU372W5M.*</string>

</array>

</dict>

12. Создайте новый PLIST-файл для вашего проекта в Xcode, назовите этот файл Entitlements.plist. В Xcode щелкните на этом файле правой кнопкой мыши, выберите Open As (Открыть как) и далее Source Code (Исходный код). Содержимое вашего файла изначально будет выглядеть вот так:

<plist version="1.0">

<dict/>

</plist>

13. Поместите разрешения вашего профиля инициализации прямо в файл Entitlements.plist, чтобы его содержимое выглядело вот так:

<plist version="1.0">

<dict>

<key>application-identifier</key>

<string>F3FU372W5M.com.pixolity.ios.cookbook.PushNotificationApp</string>

<key>aps-environment</key>

<string>development</string>

<key>get-task-allow</key>

<true/>

<key>keychain-access-groups</key>

<array>

<string>F3FU372W5M.*</string>

</array>

</dict>

</plist>

Значения, приведенные в рассматриваемых здесь листингах, относятся к профилям, которые создал я. В вашем профиле будут другие значения и, конечно же, будет другой идентификатор приложения (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, как показано далее:

— (BOOL) application:(UIApplication *)application

didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:

UIRemoteNotificationTypeAlert |

UIRemoteNotificationTypeBadge |

UIRemoteNotificationTypeSound];

self.window = [[UIWindow alloc]

initWithFrame: [[UIScreen mainScreen] bounds]];

  • Читать дальше
  • 1
  • ...
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: