Ошибка нотариального заверения в 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