Декодиране на определени изисквания на Mac App Store

Имам следното определено изискване в приложението си:

(
    anchor apple generic
    and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ 
or
    anchor apple generic
    and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */
    and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */
    and certificate leaf[subject.OU] = <redacted_team_id>
)
    and identifier "com.company.app"

Сега се опитвам да валидирам компилация за разработка на моето приложение срещу този DR. Проверката на основния сертификат на „apple generic“ работи добре, проверката на идентификатора на пакет работи добре. Проверката на сертификата в първия клон (6.1.9) търси сертификат „Apple Mac App Signing (Release)“, така че не успява. Това се очаква с компилация за разработка.

Доколкото разбирам DR, вторият клон (проверка за полета на сертификат 6.2.6 и 6.1.13) трябва да се прилага за компилации за разработка, но и двете проверки на полето на сертификата са неуспешни:

$ codesign --verify -R="certificate 1[field.1.2.840.113635.100.6.2.6]" MyApp.app
test-requirement: code failed to satisfy specified code requirement(s)
$ codesign --verify -R="certificate leaf[field.1.2.840.113635.100.6.1.13]" MyApp.app
test-requirement: code failed to satisfy specified code requirement(s)

Въпросът ми е: какво точно представляват полетата на сертификата 6.2.6 и 6.1.13 и защо моята (правилно подписана) компилация за разработка не съвпада с тях?


person zoul    schedule 25.03.2015    source източник


Отговори (1)


Полетата за сертификати 6.2.6 и 6.1.13 са свързани с приложения, подписани със сертификата за ID на програмиста. Компилацията за разработка не им съответства, защото е подписана с обикновен сертификат за разработка на Mac.

person zoul    schedule 01.04.2015