Создание идентификатора типа сертификата и прохода во время выполнения

Мое приложение, связанное с Passbook, недавно было отклонено на основании правила 23.3:

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

У меня было несколько вопросов, и я позвонил кому-то из Apple. Они сказали мне, что для решения моей проблемы я могу создать форму регистрации в своем приложении. Затем эту форму регистрации можно использовать для создания сертификата и идентификатора типа передачи для пользователя на основе его учетных данных. Однако я просматривал документацию и не нашел ничего, что позволяло бы людям создавать идентификаторы типа пропуска или сертификаты без платного членства разработчика. Верно ли это? Понадобится ли моим пользователям платное членство разработчика для создания собственных идентификаторов типов пропусков?

Если нет, возможно ли вообще создать идентификатор PassType во время выполнения? Например, используя информацию в форме регистрации, я могу сделать запрос API с помощью PassKit или какого-либо сервера Passbook для создания идентификатора типа пропуска:

PassID *ID = [PassKit createIDWithName:@"USER_INFO"];

Есть ли что-то подобное или техник Apple говорил о чем-то другом?


person Sam Spencer    schedule 07.01.2013    source источник
comment
Что именно вы пытаетесь сделать? Если вашим пользователям потребуется создать свои собственные идентификаторы типов проходов, то да, единственный способ, которым они могут это сделать, — через программу разработчика iOS.   -  person Noah Witherspoon    schedule 07.01.2013


Ответы (2)


нужно ли моим пользователям платное членство разработчика, чтобы создавать свои собственные идентификаторы типа пропуска

Как бы дико это не звучало - да! Единственный способ полностью выполнить это правило — заплатить налог Apple и зарегистрироваться в качестве разработчика. На форумах разработчиков Apple есть несколько длинных тем, в которых обсуждаются причины и последствия этого. Хотя это не популярно, большинство из нас признают, что для этого есть очень веские причины, которые в долгосрочной перспективе защитят целостность платформы (а также порадуют юристов Apple в краткосрочной перспективе).

Основная причина заключается в том, что в большинстве юрисдикций; купоны, билеты, проездные документы и другое типичное содержимое Passbook налагают обязательства на эмитента. Юридически, в случае неисполнения, ответственность перед потребителем несет выдавший пропуск. Чтобы защитить себя, Apple должна гарантировать, что ни при каких обстоятельствах они не могут считаться эмитентом любого прохода Passbook.

Регистрация в программе Apple Developer подтверждает личность любого лица или корпорации, которые приняты. Это также заставляет разработчиков подписывать условия Соглашения с разработчиком, в котором есть целое приложение, посвященное тому, что вы можете и чего не можете делать с Passbook и с вашим сертификатом PassID. Это обеспечивает Apple достаточную юридическую защиту от любых претензий в отношении невыполненных товаров или услуг, связанных с любым пропуском Passbook.

Хотя было много возражений и призывов к более быстрому и менее ориентированному на США процессу (вы не поверите, как сложно получить номер DUNS для небольшой организации за пределами США), я не ожидаю, что это изменится. в ближайшее время.

Что касается автоматической настройки. Я и создатели других основных платформ Passbook призывали к этому еще до запуска iOS6. У меня есть открытый радар от 7 августа, запрашивающий простой API для выдачи и отзыва сертификатов Pass Type ID. Я заинтригован тем, что имел в виду ваш техник Apple, поскольку, насколько мне известно, такой службы не существует.

// rant

Разочаровывает то, что существует существует ряд одобренных приложений, которые допускают настройку полного прохода, но выдают пропуски на основании сертификата разработчика приложения.

Apple также, похоже, закрывает глаза на определенные сервисы, которые выдают пропуска по собственному сертификату с логотипом и торговой маркой крупных брендов (а затем имеют наглость призывать эти бренды «требовать свои пропуска»).

Даже Passtools (теперь Urban Airship) утверждает, что предлагает «Уникальный сертификат разработчика Apple от PassTools», что технически является нарушением Соглашения с разработчиком Apple.

Так что суть в том, что в данном случае вам, возможно, просто не повезло.

// end rant
person PassKit    schedule 08.01.2013
comment
Спасибо за отличный ответ. Есть ли способ создать PassTypeIdentifiers за пределами developer.apple.com (например, на сервере или в obj-c )? Я просмотрел проект Passbook SignPass, предоставленный Apple, но, похоже, это не очень помогает в моем случае. - person Sam Spencer; 11.01.2013
comment
К сожалению нет. В настоящее время единственный способ — через портал подготовки. - person PassKit; 11.01.2013

Я не уверен, о чем говорил технический специалист, но 23.3 относится к серверу (вероятно, вашему), проходящему процесс подписи с пропуском перед отправкой файла pkpass на устройство.

Для получения информации общего уровня просмотрите "подписание и сжатие прохода" в руководстве по программированию сберегательной книжки.

person Nick    schedule 07.01.2013