5

我想知道是否有人熟悉此错误,该错误仅在我将应用程序上传到 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/库/存档/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG301

- 对这个错误的搜索没有产生任何有用的东西。

- 相关的 tar.gz 文件是一个 eSellerate 许可框架。许多人可能都知道,十多年来,它一直是 Mac 软件的流行许可平台。虽然前段时间我切换到不同的许可平台,但我仍然有成千上万的客户拥有 eSellerate 许可(我确信许多其他 Mac 开发人员的情况也是如此)。

据我了解,这整个情况必须对 tar.gz 档案中的文件进行签名 - 我也找不到任何信息

任何帮助将不胜感激!

谢谢,狮子座

4

1 回答 1

4

您必须解压缩您的tar.zipjar文件,对所有有错误的文件进行代码设计并重新打包它们。

只需浏览日志并对所有错误进行代码设计,然后将应用程序作为一个整体进行签名。对我来说,我使用以下两个命令。

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. 这是公证指南

如果您正在构建 Java 应用程序,这些链接也可能会有所帮助: How to build MacOS app with hardened runtime in AppBundler

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

于 2019-05-29T05:13:09.930 回答