CodeSign: «Список аргументов слишком длинный» - PullRequest
1 голос
/ 04 июня 2011

В прошлом мне приходилось кодировать файл .dmg.

Срок действия старого сертификата истек, и мне нужно подписать новый. Нет проблем, верно? Делай то, что я делал в прошлый раз? Да. Я экспортировал новую цепочку сертификатов и закрытый ключ в виде файла .pfx в Windows. Казалось бы, я могу импортировать это непосредственно в инструмент цепочки для ключей OS X без предварительного преобразования в .p12. Так я и сделал.

Когда приходит время для фактического кодирования, первая попытка говорит, что не может определить, какой сертификат использовать. Поэтому я поместил старую цепочку сертификатов и закрытый ключ в одну цепочку для ключей (2011 г.), а новую - в другую (2012 г.) и повторил попытку:

так ...

codesign -s "Identifier Name" --keychain 2012.keychain --verbose --dryrun somefile.dmg

Возвращает ...

somefile.dmg: signed []

НО!

codesign -s "Identifier Name" --keychain 2012.keychain --verbose somefile.dmg

Возвращает ...

somefile.dmg: Argument list too long

И просто чтобы быть уверенным ...

codesign -d --verbose somefile.dmg

Раскрывает ...

somefile.dmg: code object is not signed

А для ударов ногами

codesign -s "Identifier Name" --keychain 2011.keychain --verbose somefile.dmg

Раскрывает ...

somefile.dmg: signed generic [somefile.dmg]

tl; dr Я все еще могу подписать все нормально с моим сертификатом с истекшим сроком, но когда я пытаюсь сделать это с новым сертификатом, он работает на сухой запуск, но когда я пытаюсь подписать по-настоящему, команда возвращает «список аргументов слишком длинный».

Я пытался понять это около двух недель, теперь я не шучу, и, насколько я могу судить по поиску, в этом загадочном сообщении об ошибке ничего не найдено.

Есть какие-нибудь идеи относительно того, что происходит, или что еще я могу сделать?

Спасибо

-Lunpa

1 Ответ

1 голос
/ 24 февраля 2012

У меня была эта проблема в OSX 10.6.8.

К счастью, похоже, что выполнение той же команды в 10.7 Lion работало нормально.

...