KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Вандад Нахавандипур - iOS. Приемы программирования

Вандад Нахавандипур - iOS. Приемы программирования

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн "Вандад Нахавандипур - iOS. Приемы программирования". Жанр: Программирование издательство -, год -.
Перейти на страницу:

4. Выполните в окне терминала следующую команду, чтобы сгенерировать в каталоге pass файл signature:


openssl smime — binary — sign — signer «PATH TO YOUR EXPORTED CERTIFICATE» 

— inkey «PATH TO YOUR EXPORTED PRIVATE KEY» — in manifest.json 

— out signature — outform DER

Эта команда должна выполняться в каталоге pass, где находятся все ваши ресурсы, связанные с талоном. Экспортированный сертификат и закрытый ключ — это тот сертификат и тот ключ, которые были извлечены из сертификата, экспортированного из связки ключей. Не указывайте в этой команде сертификат в том виде, в каком он был экспортирован из связки ключей. Ранее мы уже рассмотрели, как извлекать реальный сертификат и закрытый ключ из файла. p12, экспортированного из связки ключей. Можете перечитать этот фрагмент раздела, чтобы проверить, все ли вы делаете правильно.

На последнем этапе система запросит у вас пароль к закрытому ключу. Помните его? Вы задавали этот пароль, когда извлекали закрытый ключ из сертификата, экспортированного из связки ключей. Теперь эта команда создаст файл signature в каталоге pass. Почти все готово. Остается заархивировать подготовленный каталог в виде файла с расширением. pkpass. Для этого выполните следующие шаги.

1. Откройте окно терминала и с помощью команды cd перейдите в каталог pass.

2. Чтобы запаковать ваш каталог pass в файл pass.pkpass, выполните в текущем каталоге следующую команду:


zip — r pass.pkpass. -x '.DS_Store'


В результате все файлы талона будут упакованы в архив pass.pkpass. Вновь необходимо убедиться в том, что в готовом архиве не будет файла. DS_Store.

См. также

Разделы 19.1 и 19.4.

19.6. Распространение талонов по электронной почте

Постановка задачи

Требуется рассылать талоны с цифровой подписью клиентам по электронной почте.

Решение

Посылайте талоны по электронной почте в виде прикрепленных файлов.

Обсуждение

Талон, который вы подписали и упаковали в разделе 19.5, готов к распространению. Один из простейших способов распространения талонов — по электронной почте. Выполните следующие шаги, чтобы рассылать ваши талоны с помощью приложения Mail.app из операционной системы OS X.

1. Откройте приложение Mail.app в операционной системе OS X. В меню File (Файл) выберите пункт New Message (Новое сообщение).

2. Введите адрес электронной почты того клиента, которому хотите послать талон.

3. Введите заголовок электронного сообщения.

4. Введите текст электронного сообщения. После этого просто перетащите файл pass.pkpass, подготовленный в разделе 19.5, в конец вашего электронного сообщения (рис. 19.15).


Рис. 19.15. Распространение талонов с цифровой подписью с помощью приложения Mail.app операционной системы OS X


5. Отправьте электронное письмо.

В операционной системе OS X Mavericks у пользователей появилась возможность просматривать талоны прямо в приложении Mail.app. Поскольку программа Passbook интегрирована с облаком iCloud, теперь вы можете нажать на сенсорном экране на талон, прикрепленный к электронному письму, и отправить его прямо на ваше устройство (устройства) с iOS. Для этого на мобильном устройстве должна быть установлена программа Passbook, а также активизирована связь с iCloud — это делается в соответствующем разделе настроек (рис. 19.16).

Рис. 19.16. В операционной системе OS X Mavericks талоны отображаются прямо в приложении Mail.app


Теперь, работая с сенсорным экраном, пользователь может нажать пальцем на талон, прикрепленный к письму. В результате откроется приложение Passbook, в интерфейсе которого талон отобразится, и пользователь сможет добавить его в Passbook.

См. также

Раздел 19.7.

19.7. Распространение талонов с помощью веб-сервисов

Постановка задачи

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

Решение

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

Обсуждение

Браузер Safari в операционной системе iOS не может непосредственно обрабатывать загрузку файлов талонов в формате. pkpass. Чтобы реализовать такую возможность, необходимо создавать веб-страницы и включать в них гиперссылки, указывающие на файлы. pkpass. Простой код на языке HTML, доставляющий пользователю файл pass.pkpass, приведен далее:


<html>

<header>

<title>Passbook Site</title>

</header>

<body>

<a href="http://localhost:8888/pass.pkpass">Download your pass here</a>

</body>

</html>

Ссылка указана здесь как localhost, так как в моей операционной системе OS X установлен и работает веб-сервер Apache. Вместо localhost вам понадобится дать такую ссылку, которая будет корректна в вашей среде разработки.

Теперь, когда пользователь откроет ссылку на своем устройстве в браузере Safari, он увидит примерно такую картинку, как на рис. 19.17.


Рис. 19.17. Просмотр сайта в браузере Safari на симуляторе iOS


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

См. также

Раздел 19.6.

19.8. Настройка возможности доступа к талонам в приложениях, работающих на устройстве с операционной системой iOS

Постановка задачи

Требуется развернуть приложение с поддержкой Passbook на устройстве с операционной системой iOS и гарантировать, что ваше приложение сможет читать талоны с цифровой подписью, имеющиеся на этом устройстве.

Решение

Создайте соответствующий профиль инициализации для вашего приложения. Он должен быть связан с ID приложения. Это приложение должно обладать доступом на работу с талонами.

Обсуждение

Необходимо подписывать приложения соответствующим профилем инициализации, который создан на том же портале, что и ID типа талона. Это требуется для того, чтобы вы могли считывать собственные талоны из приложения Passbook, установленного на пользовательском устройстве. Процесс проиллюстрирован на рис. 19.18.


Рис. 19.18. Процесс обеспечения доступа к талонам в приложении для iOS на устройстве с iOS


Итак, начнем! Предполагается, что на данном этапе у вас уже есть сертификат на разработку/распространение. Создадим идентификатор App ID для идентификатора типа талона (Pass Type ID), подготовленного нами в разделе 19.1. После этого займемся созданием соответствующего профиля инициализации для App ID. Сделайте вот что.

1. Перейдите в центр разработки для iOS (iOS Dev Center) в вашем браузере и зайдите на этот сайт под своим именем, если еще не сделали этого.

2. Перейдите в раздел Certificates, Identifiers & Profiles (Сертификаты, идентификаторы, профили).

3. Далее перейдите в раздел Identifiers (Идентификаторы), а затем в раздел App ID (Идентификатор приложения) и там нажмите экранную кнопку с символом +.

4. В поле Description (Описание) опишите ID вашего приложения. Эти сведения должны быть информативными для вас, вашей команды и организации.

5. В качестве значения Bundle Seed ID (Префикс идентификатора) укажите Use Team ID (Использовать ID команды).

6. В разделе Bundle Identifier (Идентификатор пакета) (суффикс App ID) укажите идентификатор пакета, записанный в стиле обратного доменного имени. В моем случае при работе с талоном, имеющим ID pass.pixolity.testingpasskit, идентификатор пакета App ID будет записываться как com.pixolity.testingpasskit.

7. Убедитесь, что установлен флажок Explicit App ID (Явный идентификатор приложения), и полностью введите в стиле обратного доменного имени идентификатор пакета приложения, который вы хотите создать. Я задал здесь значение com.pixolity.ios.cookbook.testingpasses, а мой идентификатор типа талона (Pass Type ID) ранее был задан как pass.pixolity.ios.cookbook.testingpasses. Идентификатор типа талона может и не совпадать с идентификатором пакета, но если такое совпадение соблюдается, то в будущем вам будет гораздо проще находить нужный идентификатор типа талона, если уже известен идентификатор приложения.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*