我想用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 Package Versions
的作用不同。
答案 0 :(得分:0)
在我的项目中,我正在为SPM苦苦挣扎。看来您需要通过-clonedSourcePackagesDirPath [directory]
xcodebuild -resolvePackageDependencies -workspace ck550.xcworkspace -scheme ck550-cli -clonedSourcePackagesDirPath .
xcodebuild -workspace ck550.xcworkspace -scheme ck550-cli -clonedSourcePackagesDirPath .
第一个命令将所有Swift软件包解析并下载到 ./ checkouts 中,同时还会创建其他一些 ./ [dirs] 。
第二条命令将启动应用程序的构建,并且还将构建那些SPM软件包。
以下是构建服务器的输出: https://travis-ci.org/vookimedlo/ck550-macos/builds/626438212
Travis-CI配置: https://github.com/vookimedlo/ck550-macos/blob/master/.travis.yml
答案 1 :(得分:0)
从我所看到的来看,有2个Package.resolved文件。一个在工作区上,另一个在项目上。由于某些原因,工作区中有旧版本的软件包并且正在运行
xcodebuild -resolvePackageDependencies -workspace myworkspace.xcworkspace -scheme my scheme
不起作用。但是,对项目进行解析(因为项目的Package.resolved具有正确的软件包版本信息)可以正常工作
xcodebuild -resolvePackageDependencies -project myproject.xcodeproj -scheme my scheme