Интересно, знаком ли кто-нибудь с этой ошибкой, которая возникает только тогда, когда я загружаю свои приложения в 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
-Поиск по этой ошибке ничего полезного не дал.
- Рассматриваемый файл tar.gz представляет собой систему лицензирования eSellerate. Как многие, возможно, знают, уже более десяти лет это популярная платформа для лицензирования программного обеспечения Mac. Хотя я некоторое время назад перешел на другую платформу лицензирования, у меня все еще есть тысячи клиентов с лицензиями eSellerate (как, я уверен, и у многих других разработчиков Mac).
Насколько я понимаю, вся эта ситуация как-то связана с подписанием файлов внутри архивов tar.gz - о чем я тоже не нашел никакой информации
Любая помощь будет оценена!
Спасибо, Лео
Вам нужно распаковать файл 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
ДА! Это сработало. Большое спасибо! Это подписывает фактический фреймворк, а затем упаковывает его как tar.gz.
Спасибо за подробную информацию, laocius. Все мои приложения - Cocoa. Я попытаюсь реализовать ваше предложение распаковать-подписать-переупаковать как фазу запуска сценария в Xcode и отчитаться.