Текст книги "iOS. Приемы программирования"
Автор книги: Вандад Нахавандипур
Жанр: Зарубежная компьютерная литература, Зарубежная литература
сообщить о неприемлемом содержимом
Текущая страница: 58 (всего у книги 59 страниц)
• longitude – долгота географической точки. Это значение типа double. Не заключайте его в кавычки;
• latitude – широта географической точки. Это значение типа double. Не заключайте его в кавычки.
См. такжеРазделы 19.0 и 19.2.
19.3. Подготовка пиктограмм и изображений для талонов
Постановка задачиНеобходимо гарантировать, что оформление вашего талона будет выдержано в стилистике компании. Для этого нужно придать талону характерные черты либо снабдить его узнаваемым изображением.
РешениеСоздайте фон, пиктограммы, логотипы и вставьте их в ваш талон, снабженный цифровой подписью.
ОбсуждениеНа талоне могут содержаться различные изображения:
• фон (background.png, [email protected] и [email protected]) – фоновое изображение на талоне. Не на всех талонах есть фоновые изображения;
• логотип (logo.png и [email protected]) – логотип, который будет находиться в верхнем левом углу талона. Зависит от типа талона;
• пиктограмма (icon.png и [email protected]) – пиктограмма для талона. Не у всех талонов есть пиктограммы. В этой главе мы подробно поговорим о создании пиктограмм для талонов;
• миниатюра (thumbnail.png и [email protected]) – миниатюра-ярлык, соответствующая талону. Будет видна, когда талоны сложены «в стопку».
Как понятно из названий, все эти изображения создаются в двух вариантах: для обычного и для сетчатого дисплея (Retina). Apple не требует строгого соблюдения этого правила, но разве мы, разработчики, не ценим наших клиентов? Сетчатые дисплеи сегодня так популярны, что становятся общепризнанным промышленным стандартом. Поэтому, пожалуйста, не забывайте создавать и сетчатые варианты изображений с высоким разрешением.
Итак, мы выяснили, каковы будут имена файлов изображений. Перейдем к параметрам этих изображений. Я перечисляю только сетчатые изображения (чтобы получить обычные, просто разделите все значения по длине и ширине на 2):
• [email protected] – 640 пикселов в ширину и 960 пикселов в высоту;
• [email protected] – 640 пикселов в ширину и 1136 пикселов в высоту, для iPhone 5;
• [email protected] – 60 пикселов в ширину и 60 пикселов в высоту;
• [email protected] – 58 пикселов в ширину и 29 пикселов в высоту;
• [email protected] – 200 пикселов в ширину и 200 пикселов в высоту.
В этом разделе я создал все изображения максимально простым образом. На рис. 19.13 они все показаны на одном холсте.
Рис. 19.13. Все изображения с талона на одном холсте
Рисунок сделан для наглядности и просто показывает, сколько изображений требуется подготовить для одного талона. Не нужно создавать такое изображение, в котором все эти элементы расположены на одном холсте.
Все изображения готовы. Сохраните их в том же каталоге, где уже находится файл pass.json. Переходим к следующему этапу работы – создаем файл описания (манифеста).
См. такжеРаздел 19.2.
19.4. Подготовка талонов к цифровому подписыванию
Постановка задачиТребуется подготовить талоны к цифровому подписыванию. Это необходимый предварительный этап, без которого такое подписывание выполнить невозможно.
РешениеСоздайте файл manifest.json в том же каталоге, где находятся файл pass.json и изображения для талона. Файл описания будет написан в формате JSON. Его корневой объект – это словарь. Ключами в этом словаре являются имена файлов (имена всех изображений плюс имя файла pass.json). Значение каждого ключа представляет собой SHA1-хеш соответствующего файла.
ОбсуждениеПросто создайте файл manifest.json с ключами для всех изображений, а значения пока оставьте пустыми. Содержимое вашего файла manifest.json должно выглядеть примерно так:
{
«background.png»: "",
«[email protected]»: "",
«[email protected]»: "",
«icon.png»: "",
«[email protected]»: "",
«logo.png»: "",
«[email protected]»: "",
«pass.json»: "",
«thumbnail.png»: "",
«[email protected]»: ""
}
А теперь начинается самое интересное. Нужно рассчитывать SHA1-хеши всех этих файлов. Учтите, что теперь при каждом изменении файлов (например, вы нашли ошибку в файле pass.json и исправили ее) потребуется также пересчитывать SHA1-хеш и записывать новое значение этого хеша в файле manifest.json. Чтобы рассчитать значение SHA1-хеша для любого файла в операционной системе OS X, просто выполните следующие шаги.
1. Откройте окно терминала и перейдите в каталог, где находится целевой файл (для этого используется команда cd).
2. Выполните в окне терминала команду openssl. В качестве ее первого аргумента сообщите sha1, в качестве второго – имя файла.
Например, в каталоге с моим проектом есть подкаталог pass. В этот каталог я поместил мой файл pass.json, полупустой файл manifest.json, а также все изображения для талона (фоновое изображение, логотип и т. д.). Теперь в окне терминала я рассчитаю значения SHA1-хешей для всех этих файлов и запишу полученные значения в файл описания. Итак, в первой строке следующего листинга идет команда openssl, а все остальные строки – это значения хешей, полученные в качестве вывода:
openssl sha1 *.png *.json
SHA1([email protected])= e2aaf36f4037b2a4008240dc2d13652aad6a15bb
SHA1(background.png)= b21a92dedb89f8b731adabc299b054907de2347d
SHA1([email protected])= 6abab0f77fd89f1a213940fd5c36792b4cc6b264
SHA1(icon.png)= ed698ab24c5bd7f0e7496b2897ec054bbd4 26747
SHA1([email protected])= 90381c84cfea22136c951ddb3b368ade71f49eef
SHA1(logo.png)= c3bd8c5533b6c9f500bbadbdd957b9eac8a6bfe9
SHA1([email protected])= 1a56a5564dec5e8742ad65dc47aa9bd64c39222f
SHA1(thumbnail.png)= 58883d22196eb73f33ea556a4b7ea735f90a6213
SHA1([email protected])= 0903df90165ef1a8909a15b4f652132c273 68560
SHA1(manifest.json)= 894f795b991681de8b12101afb8c2984bf8d0f65
SHA1(pass.json)= c5acddbab742f488867c34882c55ca14efff0de9
Мы рассчитали SHA1-хеши всех файлов, в том числе хеш manifest.json. Однако SHA1-хеш файла manifest.json нам не понадобится, так как он содержит хеши всех остальных файлов, а своего собственного хеша не имеет. Поэтому мы просто игнорируем хеш файла manifest.json.
Итак, теперь требуется заполнить файл manifest.json значениями SHA1 всех остальных файлов – эти хеши мы только что рассчитали:
{
«background.png»: «b21a92dedb89f8b731adabc299b054907de2347d»,
«[email protected]»: «6abab0f77fd89f1a213940fd5c36792b4cc6b264»,
«[email protected]»: «e2aaf36f4037b2a4008240dc2d13652aad6a15bb»,
«icon.png»: «ed698ab24c5bd7f0e7496b2897ec054bbd4 26747»,
«[email protected]»: «90381c84cfea22136c951ddb3b368ade71f49eef»,
«logo.png»: «c3bd8c5533b6c9f500bbadbdd957b9eac8a6bfe9»,
«[email protected]»: «1a56a5564dec5e8742ad65dc47aa9bd64c39222f»,
«pass.json»: «c5acddbab742f488867c34882c55ca14efff0de9»,
«thumbnail.png»: «58883d22196eb73f33ea556a4b7ea735f90a6213»,
«[email protected]»: «0903df90165ef1a8909a15b4f652132c273 68560»
}
Пока все понятно. Переходим к следующему этапу: нам нужно снабдить талон цифровой подписью.
См. такжеРаздел 19.1.
19.5. Цифровое подписывание талонов
Постановка задачиВы подготовили каталог pass с файлом описания и файлом pass.json, а также все изображения. Теперь вы хотите снабдить цифровой подписью каталог с талоном и его содержимое. Это требуется для создания файла талона, готового к распространению.
РешениеДля подписывания талонов используйте OpenSSL.
ОбсуждениеКаждый талон требуется подписывать с помощью сертификата, созданного в разделе 19.1. Для подписывания талонов мы вновь будем использовать команду openssl в окне терминала. Перед тем как читать дальше, убедитесь в том, что создали каталог pass и поместили в него файлы pass.json, manifest.json и все изображения. Этот каталог не обязательно должен называться pass. Тем не менее, чтобы было удобнее читать этот раздел и оставшиеся разделы этой главы, лучше не импровизировать и назвать этот каталог с файлами именно pass.
Некоторые читатели могли запутаться в том, куда относятся некоторые ключи и для чего нужны те или иные сертификаты. Надеюсь, в этом разделе ситуация прояснится. Когда вы запрашиваете новый сертификат на портале инициализации iOS, в связке ключей на вашем компьютере создается закрытый ключ, а также файл запроса на подпись сертификата (CSR). Сертификат будет сгенерирован Apple. Когда вы скачаете файл сертификата, он будет иметь расширение. cer. Это просто сертификат! Когда вы импортируете его в связку ключей, результирующий файл будет иметь расширение. p12. В этом файле будут содержаться и сертификат, и закрытый ключ к нему.
Прежде чем мы вплотную займемся процессом подписывания, нам потребуется экспортировать созданный сертификат из связки ключей. Не забывайте, что сертификат, полученный вами на портале инициализации iOS, – это не тот самый сертификат, который экспортируется из связки ключей. Поэтому при экспорте сертификата для идентификатора типа талона обязательно выполните следующие шаги.
1. Откройте на Mac программу для доступа к связке ключей (Keychain Access).
2. В левой верхней части окна в области Keychains (Связки ключей) убедитесь, что вы выбрали связку ключей для входа в систему (Login Keychain).
3. В области Category (Категория) слева выберите My Certificates (Мои сертификаты).
4. Найдите ваш сертификат для идентификатора типа талона в правой части экрана и щелкните на нем правой кнопкой мыши.
5. Теперь выберите функцию Export (Экспортировать) (рис. 19.14) и завершите экспорт вашего файла на диск в виде файла. p12. Не сохраняйте сертификат в каталоге pass. Сертификат должен находиться вне этого каталога.
Рис. 19.14. Экспорт сертификата идентификатора типа талона из программы Keychain Access
6. После того как вы попытаетесь экспортировать свой сертификат, система запросит у вас два пароля: пароль, который требуется задать для сертификата, и пароль вашей учетной записи пользователя в OS X – это должен быть пользователь, владеющий доступом к связке ключей. Первый пароль, сопровождающий сертификат, гарантирует, что без этого пароля сертификат нельзя будет импортировать на произвольную машину. Второй пароль удостоверяет, что человек, импортирующий сертификат из связки ключей, действительно имеет на это право. Например, если вы отойдете от компьютера, оставив его незаблокированным, а ваш приятель попытается экспортировать сертификат из вашей связки ключей, для этого ему придется указать пароль вашей учетной записи. В любом случае рекомендуется гарантировать, что у разных учетных записей в одной системе разные пароли. Например, если вы с братом работаете на одном и том же Mac, то ваш пароль должен быть уникальным именно для вашей учетной записи. Если пароль у вас будет одинаковым, это поставит под сомнение всю систему безопасности вашего компьютера.
Убедитесь, что не сохраняете сертификат в каталоге pass. Нельзя рассылать сертификат вместе с талоном.
Итак, вы экспортировали сертификат. У вас должен был получиться файл, который, возможно, называется Certificates.p12. Теперь нужно разделить этот файл на сертификат как таковой и закрытый ключ. Однако если вы подписываете талон с помощью OpenSSL, то вам приходится передавать сертификат и закрытый ключ по отдельности. Чтобы получить из файла Certificates.p12 закрытый ключ и сертификат (этот файл мы только что экспортировали из программы Keychain Access), выполните следующее.
1. Откройте окно терминала, если еще не сделали этого.
2. Перейдите в каталог, в котором вы сохранили экспортированный сертификат (файл. p12).
3. Чтобы получить сертификат, введите в окне терминала следующую команду:
openssl pkcs12 -in «Certificates.p12» -clcerts -nokeys
– out «exported-certificate»
После того как вы введете эту команду, система сразу же потребует у вас присвоить экспортированному сертификату пароль. В этом примере я задаю пароль 123, но вы придумайте пароль получше.
4. Чтобы получить закрытый ключ из сертификата, экспортированного из связки ключей, выполните в окне терминала следующую команду:
openssl pkcs12 -in «NAME OF YOUR.P12 CERTIFICATE FILE»
– nocerts -out «NAME OF THE OUTPUT KEY»
Я назвал экспортированный закрытый ключ exported-key, но вы можете назвать его и иначе, если желаете:
openssl pkcs12 -in «Certificates.p12» -nocerts -out «exported-key»
От вас вновь потребуется ввести пароли для ключа. Для моего ключа я указал пароль 1234, чтобы его можно было легко запомнить. Такой же пароль я задал для сертификата. Но если вы работаете в организации, где безопасности уделяется должное внимание, такой пароль вам, разумеется, не подойдет. Выберите пароль, который кажется вам осмысленным. Для максимальной защиты необходимо гарантировать, что все пароли для экспортируемых вами сертификатов/ключей являются уникальными.
Замечательно. Теперь у нас есть файлы экспортированного сертификата и закрытого ключа. Можем перейти к подписыванию талона с их помощью. Чтобы это сделать, выполните следующие шаги.
1. Если вы еще не сделали этого, поместите все файлы, относящиеся к талону (pass.json, manifest.json и все соответствующие изображения), в каталог pass. Вы можете назвать этот каталог как хотите, но в рамках этого раздела рекомендую давать создаваемым каталогам такие же названия, какие даю я. Так нам будет проще ориентироваться, в каком каталоге мы находимся и что делаем в окне терминала.
2. Воспользуйтесь командой cd, чтобы перейти из текущего рабочего каталога в каталог pass, где находятся все интересующие нас файлы талона.
3. Выполните команду rm -f.DS_Store, чтобы убедиться, что в каталоге pass отсутствуют ненужные скрытые системные файлы OS X. Вы также должны проверить, перечислены ли все файлы из этого каталога в файле manifest.json, где наряду с самими файлами должны находиться и их SHA1-хеши. Если в этот каталог просочатся какие-то другие файлы (как перечисленные в файле описания, так и не указанные там), то талон получится недействительным. Его не удастся прочитать в приложении Passbook ни на устройстве с 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. Идентификатор типа талона может и не совпадать с идентификатором пакета, но если такое совпадение соблюдается, то в будущем вам будет гораздо проще находить нужный идентификатор типа талона, если уже известен идентификатор приложения.
8. В разделе App Services (Сервисы приложения) на этой странице нужно обязательно установить флажок Passbook. Так вы откроете в вашем приложении доступ к книге талонов Passbook.
9. Когда сделаете это, нажмите кнопку Continue (Продолжить). На следующем экране, который откроется перед вами (рис. 19.19), вы увидите все значения, которые ввели на предыдущей странице. Просмотрите их еще раз внимательно и, если вас все устроит, нажмите кнопку Submit (Отправить).
Рис. 19.19. Обзор нового идентификатора приложения (App ID) перед интеграцией его с Passbook
10. Теперь, когда вы активизировали использование талонов для данного App ID, создадим профиль инициализации. Перейдите в подраздел Provisioning Profiles (Профили инициализации) раздела iOS Provisioning Profile (Профиль инициализации iOS).
11. Мы собираемся создать профиль инициализации для разработки, а не Ad Hoc (Специальная сборка). Поэтому в подразделе Provisioning (Инициализация) раздела Development (Разработка) нажмите кнопку +.
12. Откроется следующий экран. На нем выберите элемент iOS App Development (Разработка приложения для iOS) и нажмите кнопку Continue (Продолжить).
13. Теперь вам будет предложено выбрать идентификатор приложения (App ID) для вашего профиля. Выберите идентификатор приложения, созданный вами раньше в этом разделе книги, и нажмите кнопку Continue (Продолжить) (рис. 19.20).
Рис. 19.20. Выбор правильного идентификатора приложения для нового профиля инициализации, создаваемого для целей разработки
14. Теперь вы увидите список доступных сертификатов для разработки, которые есть у вас на портале. Выберите один или несколько сертификатов, с которыми хотите ассоциировать ваш профиль. Обычно принято ассоциировать профиль всего с одним сертификатом, но на портале, где трудится много программистов, у каждого из которых есть свой сертификат разработки, бывает необходимо создать такой профиль, который ассоциирован сразу с несколькими сертификатами. Сделав выбор, нажмите кнопку Continue (Продолжить).
15. Далее вы увидите список зарегистрированных устройств. Выберите из него те устройства, которые будут включены в ваш профиль. Сделав это, нажмите кнопку Continue (Продолжить).
16. На следующем экране система запросит у вас указать имя профиля. Дайте ему информативное имя, а затем нажмите кнопку Generate (Сгенерировать).
17. Когда ваш профиль будет сгенерирован, нажмите кнопку Download (Скачать), чтобы загрузить его на ваше устройство (рис. 19.21). После того как загрузка завершится, перетащите этот профиль в iTunes, чтобы установить его на вашем устройстве.
Рис. 19.21. Профиль Passbook готов к скачиванию
Существует несколько способов установки профиля инициализации в операционной системе OS X. Самый лучший и быстрый способ – просто перетащить профиль в iTunes. Профиль также можно установить, воспользовавшись Xcode. Какой бы способ вы ни выбрали, ни в коем случае не делайте двойного щелчка на профиле в ходе его установки. В случае двойного щелчка профиль установится на диске под совершенно невразумительным названием, и позже вам будет очень сложно найти нужный профиль среди множества других. Чтобы не засорять диск, пользуйтесь iTunes или Xcode для установки профилей инициализации. Все профили инициализации, установленные у вас на диске, можно просмотреть в файле ~/Library/MobileDevice/Provisioning Profiles/.
18. Теперь откройте ваш проект в Xcode. На вкладке Build Settings (Настройки сборки) выберите только что созданный профиль инициализации для отладочных сборок (Debug-only). То же самое можно сделать и для специальных сборок (Ad Hoc), но в схеме Release (Релиз) на вкладке Build Settings (Настройки сборки).
19. В Xcode рядом с вкладкой Build Settings (Настройки сборки) выберите Capabilities (Возможности), найдите там элемент Passbook и переведите его виртуальный переключатель в положение On (Включено) (рис. 19.22).
Рис. 19.22. Активизация Passbook в Xcode
20. Как только вы переведете переключатель для Passbook в положение On (Включено), Xcode свяжется с центром разработки и выберет оттуда все доступные для вас идентификаторы типа талона. В списке (рис. 19.23) выберите тот идентификатор типа талона, который вы создали ранее в этом разделе.
Рис. 19.23. Выбор корректного идентификатора типа талона в Xcode.
Вот мы и закончили настройку фреймворка Pass Kit! Осталось написать приложение, которое будет иметь доступ к талонам, расположенным на устройстве. Это приложение будет описано в разделе 19.9.
Правообладателям!
Это произведение, предположительно, находится в статусе 'public domain'. Если это не так и размещение материала нарушает чьи-либо права, то сообщите нам об этом.