![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Passbook as QR Code Business Card
С выходом iOS 6 появилась замечательная тулза – Passbook. Пока еще немного софта, который ее поддерживает, однако данные в нее можно загонять и самостоятельно. Одно из применений которое я нашел – собственная визитка в виде QR-кода.
Выглядит вот так:
А дальше технические детали для желающих сделать себе такое же и имеющих доступ к Apple Developer Program.
Остальным под кат можно не лазить ибо будет очень много технической информации.
Для создания собственной карточки нам потребуется:
- Mac
- Общее понимание как компилить код в XCode
- Понимание как работать в shell (terminal)
- Доступ к Apple Developer Program (iOS)
- Прямые руки
Итак, приступим…
1) Идем в Provisioning Portal и создаем новый pass (его ID будет использовано дальше). Там же читаем инструкцию и генерируем сертификат, который скачиваем и укладываем в Keychain. Там все просто.
2) Там же в разделе документации находим Passbook starting kit – в нем будет XCode Project с названием signpass. Качаем, собираем, копируем тулзу в /usr/local/bin (она будет shell-based).
3) Качаем файлик: http://cl.ly/JnFN – это PSD-шаблон для иконок. Открываем, вставляем собственную фотку или логотип и експортим слайсы (4 штуки). Они уже поименованы как надо.
4) Создаем где-нить фолдер с именем типа JohnSmith.raw
5) Складываем наши иконки (icon.png, icon@2x.png, logo.png, logo@2x.png) в этот фолдер.
6) Там же создаем файлик с именем pass.json (именно такое имя и никакое другое). В него вставляем примерно следующее:
{ "formatVersion" : 1, "passTypeIdentifier" : "pass.com.yourname", "serialNumber" : "BusinessCard1", "teamIdentifier" : "A1B2C3D4", "barcode" : { "message" : "BEGIN:VCARD\nVERSION:3.0\nN:Smith;John;;;\nFN:John Smith\nTITLE:Developer\nEMAIL;type=INTERNET;type=WORK:john@smith.com\nTEL;type=CELL;type=VOICE;type=pref:+14165551234\nURL;type=pref:http:\/\/apple.com\/\nBDAY:1980-01-01\nIMPP;X-SERVICE-TYPE=Skype;type=HOME:skype:skype_user_name\nEND:VCARD", "format" : "PKBarcodeFormatQR", "messageEncoding" : "iso-8859-1" }, "organizationName" : "John Smith", "description" : "Business Card", "logoText" : "John Smith", "foregroundColor" : "rgb(255, 255, 255)", "backgroundColor" : "rgb(100, 0, 0)", "generic" : { "primaryFields" : [ { "key" : "member", "value" : "John Smith" } ], "secondaryFields" : [ { "key" : "subtitle", "label" : "Phone", "value" : "+1 (416) 555-1234" } ], "auxiliaryFields" : [ { "key" : "level", "label" : "E-Mail", "value" : "john@smith.com" }, { "key" : "favorite", "label" : "Website", "value" : "http://apple.com", "textAlignment" : "PKTextAlignmentRight" } ], "backFields" : [ { "key" : "website", "label" : "Website", "value" : "http://apple.com" }, { "dateStyle" : "PKDateStyleShort", "label" : "Birthday", "key" : "birthday", "value" : "1980-01-01T10:00:00+03:00" } ] } } |
Особо обратите внимание на следующие поля:
passTypeIdentifier – тут ID pass’а который прописан в Provision Portal
serialNumber – любая фигня типа Card1
teamIdentifier – при регистрации в Apple Dev Program будет выдано это значение. Оно же будет в сертификате.
message – тут будет наша VCard
И еще там есть другие поля которые отвечают за текст на карточке и цвета – подстраиваем на свое усмотрение.
7) Создаем файлик типа user.vcf и вставляем в него следующее (сделав соответствующие изменения для себя – эти данные и будут в QR-коде:
BEGIN:VCARD VERSION:3.0 N:Smith;John;;; FN:John Smith TITLE:Developer EMAIL;type=INTERNET;type=WORK:john@smith.com TEL;type=CELL;type=VOICE;type=pref:+14165551234 URL;type=pref:http://apple.com/ BDAY:1980-01-01 IMPP;X-SERVICE-TYPE=Skype;type=HOME:skype:skype_user_name END:VCARD
Если чего-то у вас нету – просто удаляем строчку. Так же имеем ввиду, что размер QR-кода там лимитирован и очень много инфы (вроде фотки) в него не запихнуть. Поэтому аккуратнее.
8) Создаем малюсенький PHP скрипт:
#!/usr/bin/php <? $c = file_get_contents("user.vcf"); $j = array('data' => $c); print json_encode($j) . "\n"; ?> |
Запускаем, и copy/paste той части где наш VCF-файл будет корректно зажат в одну строчку.
9) То что мы получили из п.8 копируем в файл pass.json в переменную message.
10) Из шелла запускаем:
# signpass -p JohnSmith.raw/ |
На выходе будет файлик JohnSmith.pkpass – это и есть искомый Passbook. Double-click покажет preview карточки, там же будет кнопка “Add to Passbook” – у меня сразу синхронизировалось с iPhone. Если не поможет или надо на другой телефон отправить – просто шлем по почте.
11) Profit!
12) Использовать очень просто – показываем наш QR-код, который человек которому надо передать карточку сканирует каким-то QR-code reader’ом.
P.S. На случай, если у вас нету доступа к Apple Developer Program но есть у ваших друзей – их вполне можно попросить подписать ваш Pass.
Originally published at Scorp.ca
Хуйня какаято
Re: Хуйня какаято
Re: Хуйня какаято
Use case - сливаю по WiFi c камеры RAW, редактирую в фотошопе, отправляю по синезубу желающему.
Записал от руки (!), надиктовал на русском (!) языке заметки на встрече, оформил в PDF, отправил по почте.
Виджеты.
Переслать рингтон по синезубу блять ;-)