Я получаю сообщение об ошибке в заголовке каждый раз, когда пытаюсь установить упакованное вручную приложение сберегательной книжки, нажав кнопку «Добавить». Я могу успешно установить приложения сберегательной книжки, которые были упакованы с помощью инструмента «signpass», но теперь мне нужно создать динамические пакеты на сервере unix.
Я пытался вручную упаковать свое приложение сберегательной книжки с помощью различных пакетов из Интернета, и каждый из них дает мне одну и ту же ошибку. Вот несколько пакетов, которые я пробовал: https://github.com/maater/TCSH-PKPass https://github.com/devartis/passbook https://github.com/pcperini/PyPKPass
Это созданный и заархивированный файл pass.json (обратите внимание, что заполнены teamIdentifier и passTypeIdentifier):
{
"formatVersion" : 1,
"passTypeIdentifier" : "pass.votizen.membership",
"serialNumber" : "ASDF",
"webServiceURL" : "https://www.votizen.com/passbook/",
"authenticationToken" : "AUTH_TOKEN",
"teamIdentifier" : "MY_TEAM_IDENTIFIER",
"organizationName" : "Matthew Snider",
"description" : "Your voter registration card",
"logoText" : "VOTIZEN",
"labelColor": "#B7B0A8",
"foregroundColor" : "#5F6062",
"backgroundColor" : "#FCFAF5",
"generic" : {
"headerFields": [
{
"key" : "reg_date",
"label": "VOTER SINCE",
"value" : "2002"
}
],
"primaryFields" : [
{
"key" : "party",
"label": "REGISTERED PARTY",
"value" : "Democrat"
}
],
"secondaryFields" : [
{
"key" : "election",
"label" : "NEXT ELECTION",
"value" : "November 6, 2012"
},
],
"auxiliaryFields" : [
{
"key" : "polling_place",
"label" : "POLLING PLACE",
"value" : "268 E Julian Street, San Jose, CA 95112",
"textAlignment" : "PKTextAlignmentLeft"
}
],
"backFields" : [
{
"key" : "elections",
"label" : "ELECTIONS YOU VOTED IN",
"value" : "2010 General\n2008 General\n2008 Primary\n2004 General"
},
{
"key" : "polling",
"label" : "DIRECTIONS TO YOUR POLLING PLACES",
"value" : "https://maps.apple.com/maps?q=268+E+Julian+Street,+San+Jose,+CA+95112"
},
{
"key" : "website",
"label" : "Powered by Votizen",
"value" : "https://www.votizen.com/"
}
]
}
}
Я выполнил шаги Apple, чтобы сгенерировать свой сертификат идентификатора типа пропуска, загрузить и установить его в свой доступ к цепочке ключей. Затем я экспортировал его как «Certificates.p12» и запустил следующее, чтобы сгенерировать certificate.pem и key.pem:
set P12 = Certificates.p12
sef PASSWORD = MY_PASSWORD
openssl pkcs12 -passin pass:$PASSWORD -in "$P12" -clcerts -nokeys -out certificate.pem
openssl pkcs12 -passin pass:$PASSWORD -in "$P12" -nocerts -out key.pem -passout pass:$PASSWORD
После создания файла манифеста я запускаю:
openssl smime -passin pass:$PASSWORD -binary -sign -certfile wwdr.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature xs-outform DER
Я создал wwdr.pem, экспортировав Центр сертификации Apple Worldwide Developer Relations в виде файла Privacy Enhanced Mail.
Я где-то читал, что вам нужно установить корневой центр сертификации Apple (который у меня есть), поэтому вот список сертификатов, которые я установил:
- Центр сертификации интеграции приложений Apple Корневой ЦС Apple
- Корневой центр сертификации Apple Применяет отношения с разработчиками по всему миру
- Центр сертификации
- com.apple.idms.appleid.prd.4f3756614a59746e554a36344e6b55426b64576441413d3d
- com.apple.вездесущность.peer-uuid.207240B0-758A-4C1E-B173-D1B70FF03533
- com.apple.вездесущность.peer-uuid.C5D1968F-8923-48E4-A09D-8C9AE485A88B
- com.apple.вездесущность.ssl-сертификат.C5D1968F-8923-48E4-A09D-8C9AE485A88B
- Разработчик iPhone: Мэтью Снайдер ID типа пропуска:
- пройти.votizen.членство
Очевидно, что-то не так с сертификатом, который я использую, или с тем, как я его упаковываю. Я понятия не имею, что я делаю неправильно. Я надеюсь, что у кого-то есть идея.