Я подписываю установщик install4j для OSX, однако OSX отклоняет его. Системный журнал сообщает только об отклонении, а spctl сообщает только об отклонении без объяснения причин. Как я могу определить, почему он был отклонен?
Как отладить отказ от подписи кода OSX?
Ответы (1)
Я полагаю, вы говорите о том, что привратник не разрешает запуск вашего приложения после его загрузки? Правила привратника основаны не на списке правил отклонения приложения, а на списке возможных правил принятия приложения, и если ваше приложение не соответствует какому-либо или этим правилам . Это затрудняет регистрацию, например. почему ваше приложение было отклонено помимо «оно не соответствует ни одному из разрешенных правил». Теперь, если вы знаете, какое «разрешающее» правило вы ожидаете применить к нему, вы можете попытаться отладить его на основе этого, но сам гейткипер этого не знает и, следовательно, не очень помогает.
Я предполагаю, что вы хотите, чтобы ваше приложение было разрешено в соответствии с правилом «идентифицированный разработчик»? Если это так, есть пара тестов для поиска очевидных проблем: во-первых, запустите codesign -vv --deep-verify /path/to/yourapp.app
и убедитесь, что он печатает «действительно на диске» и «удовлетворяет назначенному требованию» (и не выдает никаких ошибок) — если нет , что-то не так с подписью или содержимым приложения.
Во-вторых, запустите codesign -dvv /path/to/yourapp.app
и убедитесь, что перечисленные в нем данные включают:
Authority=Developer ID Application: [Your name/company here]
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Sealed Resources version=2 rules=[something] files=[something]
Если список полномочий отличается от этого, вы использовали неправильный сертификат для его подписи. Если версия Sealed Resources равна 1 или отсутствует в списке, вы подписали ее с помощью старой версии OS X, а последние версии отклонят формат подписи.
codesign --verify
я рекомендую также использовать параметр --deep-verify
, чтобы убедиться, что все плагины, частные фреймворки и т. д. также правильно подписаны.
- person JWWalker; 24.03.2015
Sealed Resources
— только после написания кода в системе 10.9 она читалась как Sealed Resources version=2
. Apple, конечно, мало заботится о тех, кто не использует последние версии ОС, и я нигде не нашел этого предостережения в их документах. Спасибо, что спасли мой рассудок!
- person Dr Marble; 02.04.2015
iPhone Developer ID
вместо Developer ID Application
. Спасибо.
- person Joshua Pinter; 22.05.2018