Travis CI-Swift包管理-签出已存在?

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/

试图在配置为使用Swift Package Manager的项目中设置示例项目,但出现奇怪错误

项目结构:

MyProject/
    - Package.swift
    MyProject/
        - etc...
    Samples/
        - MySampleProject/
Swift软件包存储库设置:

MyProject/
    - Package.swift
    MyProject/
        - etc...
    Samples/
        - MySampleProject/
MySampleProject
设置为使用travis作业中应存在的本地Swift包:

file:///Users/travis/build/MyProject/MyProject
要实现两件事:
  • 这个错误消息很容易引起误解。如果实际上没有提交请求,您将收到此错误消息

  • 一位同事指出,Travis实际上使用了
    refs/pull/$Travis\u pull\u REQUEST/merge
    作为
    $Travis\u COMMIT

  • 完整解决方案: 在plist中查找与
    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,所以我发现了一个问题,解决后应该会对我们有所帮助。也许你可以在这个线程中找到你的问题的提示。