使用Xcode 12.4和Swift 5.3,我已经使用Package.swift
清单文件定义了一个包。将其包含在应用程序中后,我想更新程序包。为此,我将链接更改为新版本并更新了校验和。文件的相关部分如下所示:
let package = Package(
name: "MyPackage",
// omitted platforms and products
targets: [ .binaryTarget( name: "MyPackage",
url: "https://artifactory/mypackage-v1.1.zip",
checksum: "..." ) ] )
但是,我收到错误消息artifact of binary target 'MyPackage' has changed checksum; this is a potential security risk so the new artifact won't be downloaded
。通过删除整个DerivedData
on文件夹可以忽略此错误,但这显然不是更新版本号。在此答案中提出了另一种解决方案,但这再次不会影响版本控制。在官方文档写了大量关于依赖包版本,但我怎么也找不到指定当前包的版本。
如何合法地指定和更新版本号,以便将新工件标识为不同的新版本并正确下载?
当您想要(私下或公开)使用xcframework
文件分发封闭源代码包时,通常需要创建一个git存储库,该存储库仅包含Package.swift
声明的文件binaryTarget
。(或binaryTargets)有权访问此存储库的任何人也应有权访问url
您在binaryTarget
中声明的,以便安装您的软件包。
正如注释中正确提到的@Larme和@matt一样,要指定与每个版本相对应的提交,您必须像在cocoapod存储库中一样使用git存储库中的标签,只有在仅包含一个存储库中才能这样做该Package.swift
文件。有关更多详细信息,请参见使用Xcode发布Swift包文档中的“标记您的最新提交”部分。
您可以使用PSPDFKit作为示例,这是一个已知且维护良好的封闭源程序包,可以使用此github存储库进行安装。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句