Ошибка нотариального заверения 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/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG301

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

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

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

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

Спасибо, Лео

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
1 194
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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

Спасибо за подробную информацию, laocius. Все мои приложения - Cocoa. Я попытаюсь реализовать ваше предложение распаковать-подписать-переупаковать как фазу запуска сценария в Xcode и отчитаться.

Leo Braun 30.05.2019 01:43

ДА! Это сработало. Большое спасибо! Это подписывает фактический фреймворк, а затем упаковывает его как tar.gz.

Leo Braun 30.05.2019 07:21

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