如何获取二进制包的校验和?

use*_*ser 5 swift swift-package-manager xcframework

我在桌面上创建了名为MyXCFramework.xcframework的 xcframework ,然后像Boris在 WWDC2020 中关于将二进制框架分发为 Swift 包时所说的那样将其压缩,这两个文件都在桌面上,我想获取校验和,然后我在终端中使用了这行代码:

cd ~/Desktop/

swift package compute-checksum ~/Desktop/MyXCFramework.xcframework.zip
Run Code Online (Sandbox Code Playgroud)

但终端出现此错误:

error: root manifest not found
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

我不知道为什么终端试图在这一点上体现?!因为还没有清单!我需要校验和来构建我的清单,以将二进制框架分发为 Swift 包。那么我该如何解决这个问题呢?

use*_*ser 3

经过大量的尝试和错误后,我发现了两种解决问题的方法:

Apple 的第一种方式

要创建所需的校验和,请打开终端应用程序,导航到包的根目录,然后运行 ​​swift packagecompute-checksumpath/to/MyFramework.zip。

方式一:

1 - 值得一提的是,Apple 说是MyFramework.zip,但实际上它是MyXCFramework.zip

2 - 苹果说:导航到包的根目录,这意味着您要键入并为其提供校验和的包!奇怪的是,读取校验和需要文件夹或包,因为校验和是包的参数!我不知道幕后发生了什么,但这就是它的工作原理。

方式二:

您可以给 Package 提供一些虚拟值作为校验和,然后 Xcode 会通过错误并为您提供正确且需要的校验和,并告诉您使用的错误校验和。然后,您复制该错误消息并敲出正确的校验和,并将其替换为虚拟校验和。我们还没有完成!由于 Xcode 无法使用新的正确校验和构建正确的包,因此它将处于某种锁定状态!您需要转到Xcode 中的File ,然后转到Swift Package,然后单击Reset Package Caches。之后你就可以出发了!通过这种方式,您可以快捷地使用终端方式来读取校验和。

这是查找校验和的两种方法!