Ошибка нотариального заверения в macOS: "Используемый алгоритм подписи слишком слабый"

Интересно, кто-нибудь знаком с этой ошибкой, которая возникает, только когда я загружаю свои приложения в 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/ библиотека / архив / TechNotes/tn2206/_index.html#//apple_ref/ DOC / UID / DTS40007919-CH1-TNTAG301

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

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

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

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

Спасибо лев

1 ответ

Решение

Вы должны распаковать свой 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

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

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

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

Другие вопросы по тегам