Xcode Swift软件包管理器-解析软件包版本终端命令

Xcode Swift软件包管理器-解析软件包版本终端命令,xcode,swift-package-manager,Xcode,Swift Package Manager,我想用SPM代替椰子荚。我决定一次去一家图书馆。我从cocoapods中删除了swinject库,并通过File->Swift Packages->Add Package Dependency 这是成功的,项目按照预期进行了建设和运行 然后,我请团队中的其他人检查分支机构,看看他们是否能够毫无问题地构建项目。然后,我们遇到了错误“缺少包产品‘Swinject’”。我们通过在Xcode中执行File->Swift Packages->Resolve Package Versions解决了这个错误

我想用SPM代替椰子荚。我决定一次去一家图书馆。我从cocoapods中删除了swinject库,并通过
File->Swift Packages->Add Package Dependency

这是成功的,项目按照预期进行了建设和运行

然后,我请团队中的其他人检查分支机构,看看他们是否能够毫无问题地构建项目。然后,我们遇到了错误“缺少包产品‘Swinject’”。我们通过在Xcode中执行
File->Swift Packages->Resolve Package Versions
解决了这个错误

我需要让这个在构建服务器上运行。我尝试在终端应用程序中键入
swift-package--help
,查看可用的命令。
resolve
命令看起来很有希望,所以我尝试了一下,但没有成功。(错误:找不到根清单)

那么,我的问题是,是否有一个终端命令与
File->Swift Packages->Resolve Package Versions
执行相同的操作

注意:当我通过SPM添加第三方库时,它为我创建了一个文件:
Proj.xcworkspace/xcshareddata/swiftpm/Package.resolved
。它还对
Proj.xcodeproj/project.pbxproj
文件进行了各种更改。未创建任何
package.swift
文件

更新
我得到的最接近答案是,我应该尝试
xcodebuild-resolvePackageDependencies
,不幸的是,该命令与
File->Swift-Packages->Resolve-Packages-Versions
我在项目中与SPM打交道时的命令不一样。似乎需要传递
-clonedSourcePackagesDirPath[目录]

xcodebuild -resolvePackageDependencies -workspace ck550.xcworkspace -scheme ck550-cli -clonedSourcePackagesDirPath .

xcodebuild -workspace ck550.xcworkspace -scheme ck550-cli -clonedSourcePackagesDirPath .
第一个命令解析所有Swift包并将其下载到./checkout中,还创建了一些其他的。/[dir]

第二个命令启动应用程序的构建,这些SPM包也被构建

以下是生成服务器的输出:

Travis CI配置:

据我所见,有2个Package.resolved文件。一个在工作区上,一个在项目上。由于某些原因,工作区中有旧版本的包并正在运行

xcodebuild -resolvePackageDependencies -workspace myworkspace.xcworkspace -scheme my scheme
不起作用。但是,在项目上解析(因为项目的Package.resolved具有正确的packages版本信息)确实有效

xcodebuild -resolvePackageDependencies -project myproject.xcodeproj -scheme my scheme

谢谢!这是我在Azure管道上的作品。我的项目只包含SPM和Github的开源(Vapor)包!如果有人路过,但他们的CI仍然存在问题,您还可以检查是否忽略了
.swiftpm/xcode/
文件夹中的方案