macOS notarization error: "The signature algorithm used is too weak"
macOS notarization error: "The signature algorithm used is too weak"
我想知道是否有人熟悉这个错误,这个错误只会在我将我的应用程序上传到 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 年 11 月提交了一个错误,向 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
您必须 运行 与 --options=runtime
共同设计。
这是一个 guide 公证。
如果您正在构建 Java 应用,这些链接可能也会有所帮助:
How to build MacOS app with hardened runtime in AppBundler
https://bitbucket.org/infinitekind/appbundler/issues/39/build-with-hardened-runtime
我想知道是否有人熟悉这个错误,这个错误只会在我将我的应用程序上传到 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 年 11 月提交了一个错误,向 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
您必须 运行 与 --options=runtime
共同设计。
这是一个 guide 公证。
如果您正在构建 Java 应用,这些链接可能也会有所帮助: How to build MacOS app with hardened runtime in AppBundler
https://bitbucket.org/infinitekind/appbundler/issues/39/build-with-hardened-runtime