Ошибка нотариального заверения в macOS: «Используемый алгоритм подписи слишком слабый» - PullRequest
4 голосов
/ 29 мая 2019

Интересно, знает ли кто-нибудь об этой ошибке, которая возникает, только когда я загружаю свои приложения в Apple для нотариального заверения:

"AppName.zip/AppName.app/Contents/Resources/EWSMacCompress.tar.gz/EWSMacCompress.tar/EWSMac.framework/Versions/A/EWSMac83886082"
"The signature algorithm used is too weak."

Дополнительная информация:

-Я подписываю свои приложениягодами без проблем.Ошибка возникает только при отправке приложений на нотариальное заверение.

- Я отправил сообщение об ошибке еще в ноябре 2018 года, предоставив Apple всю информацию, которую они запрашивали, - но она никогда не была устранена.

-Недавно я снова связался с Apple, и они указали мне на страницу ресурсов, которая в последний раз обновлялась в 2016 году. В ней кратко упоминается похожая ошибка - но все еще без какой-либо информации о том, как ее решить: https://developer.apple.com/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG301

-Aпоиск по этой ошибке ничего полезного не дал.

- рассматриваемый файл tar.gz - это структура лицензирования eSellerate.Как многие могут знать, это была популярная платформа лицензирования для программного обеспечения Mac уже более десяти лет.Хотя некоторое время назад я перешел на другую платформу лицензирования, у меня все еще есть тысячи клиентов с лицензиями eSellerate (как, я уверен, ситуация со многими другими разработчиками Mac).

Насколько я понимаю, этовся ситуация связана с подписыванием файлов внутри архивов tar.gz - о которых я тоже не могу найти никакой информации

Любая помощь будет оценена!

Спасибо, Лев

1 Ответ

2 голосов
/ 29 мая 2019

Вы должны распаковать файл tar, zip или jar, кодировать все файлы с ошибками и перепаковать их.

Просто просмотрите журналы и подпишите их все с ошибками, а затем подпишите приложение в целом. Для меня я использую следующие две команды.

find ./MyApp -type f \
 -exec codesign --timestamp \
 --keychain /Users/builduser/Library/Keychains/login.keychain-db \
 -s 'Developer ID Application: XXXXXXXX' -f --verbose=9 --deep \
 --options=runtime --entitlements entitlements.xml {} +

и затем подпишите приложение

codesign --timestamp \
 --keychain /Users/builduser/Library/Keychains/login.keychain-db \
 -s 'Developer ID Application: XXXXXXXX' -f --verbose=9 --deep \
 --options=runtime --entitlements entitlements.xml MyApp

Вы должны запустить codeign с --options=runtime. Вот руководство к нотаризации.

Если вы создаете приложения Java, эти ссылки также могут быть полезны: Как создать приложение MacOS с усиленной средой выполнения в AppBundler

https://bitbucket.org/infinitekind/appbundler/issues/39/build-with-hardened-runtime

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...