Travis CI-Swift包管理-签出已存在?
试图在配置为使用Swift Package Manager的项目中设置示例项目,但出现奇怪错误 项目结构:Travis CI-Swift包管理-签出已存在?,swift,xcode,travis-ci,swift-package-manager,Swift,Xcode,Travis Ci,Swift Package Manager,试图在配置为使用Swift Package Manager的项目中设置示例项目,但出现奇怪错误 项目结构: MyProject/ - Package.swift MyProject/ - etc... Samples/ - MySampleProject/ Swift软件包存储库设置: MyProject/ - Package.swift MyProject/ - etc... Samples/
MyProject/
- Package.swift
MyProject/
- etc...
Samples/
- MySampleProject/
Swift软件包存储库设置:
MyProject/
- Package.swift
MyProject/
- etc...
Samples/
- MySampleProject/
MySampleProject
设置为使用travis作业中应存在的本地Swift包:
file:///Users/travis/build/MyProject/MyProject
要实现两件事:
refs/pull/$Travis\u pull\u REQUEST/merge
作为$Travis\u COMMIT
xRemoteSwiftPackageReference
您可以通过在文本编辑器中打开YourProject.xcodeproj/project.pbxproj
并搜索xcmoteswifftpackagereference
来查找此信息。获取ID,因为您需要在构建步骤中对其进行硬编码
注意:如果删除并重新添加包,则需要更新此文件
接下来,使用PlistBuddy将分支更新为pull请求的合并引用
echo "Updating project file to point to merge commit at: refs/pull/$TRAVIS_PULL_REQUEST/merge"
/usr/libexec/PlistBuddy \
-c "set :objects:F4CEA53E23C29C9E0086EB16:requirement:branch refs/pull/$TRAVIS_PULL_REQUEST/merge" \
YourProject.xcodeproj/project.pbxproj
# Redirecting to /dev/null because we only care about errors here and the full output drowns Travis
xcodebuild build -scheme YourScheme \
-sdk iphonesimulator > /dev/null
}
谢谢,以上确实帮助了我。这就是我所做的 我删除了using项目中的包依赖项,然后删除了../Xcode/DerivedData/usingProject目录。然后,我在Xcode中打开swift包,并在最新版本(标记为1.0.11)上进行git签出。最后,在Xcode中,我选择了using project->Swift Packages并将(+)本地URL添加到包的文件夹中: file:///Users/me/repository/mySwiftPackageFolder 构建最终在使用项目上起作用
注意,仅仅删除派生数据或提到的签出目录并不能修复错误。我需要一个干净的派生数据、一个好的包签出和一个包文件夹URL。您找到解决方案了吗?我目前只在比特瑞斯(Bitrise)而不是特拉维斯(travis Civis)经历了同样的情况。不幸的是,没有(这在我看来不是很好。因为我们使用fastlane,所以我发现了一个问题,解决后应该会对我们有所帮助。也许你可以在这个线程中找到你的问题的提示。