首页 > 解决方案 > Swift 包管理器 - 意外的重复任务:目标 AppTests(项目 App)具有复制命令 - SwiftDate

问题描述

我正在将我的项目从 Carthage 迁移到 SPM。我正在使用 Xcode 12.0。构建主应用程序没有任何问题,但我不能再运行我的单元测试了。我在我的应用程序目标 (SPMD) 和我的应用程序测试目标 (SPMDTests) 中使用相同的框架SwiftDate v6.2.0。

我已经解决了Swift package product 'your library' is linked as a static library by 'your project' and 'your widget'. This will result in duplication of library code.。我遵循了教程Swift Package Manager Static Dynamic Xcode Bug

我可以运行我的应用程序,但我无法运行我的单元测试。错误说

Unexpected duplicate tasks:
1) Target 'SPMDTests' (project 'SPMD') has copy command from 'xxx/DerivedData/xxx/Build/Products/Debug-iphonesimulator/SwiftDate_SwiftDate.bundle' to 'xxx/DerivedData/xxx/Build/Products/Debug-iphonesimulator/SPMD.app/PlugIns/SPMDTests.xctest/SwiftDate_SwiftDate.bundle'
2) Target 'SPMDTests' (project 'SPMD') has copy command from 'xxx/DerivedData/xxx/Build/Products/Debug-iphonesimulator/SwiftDate_SwiftDate.bundle' to 'xxx/DerivedData/xxx/Build/Products/Debug-iphonesimulator/SPMD.app/PlugIns/SPMDTests.xctest/SwiftDate_SwiftDate.bundle'

1

2

我用Realm尝试了相同的设置,它没有任何问题。这是SwiftDate的错误还是我遗漏了什么?

标签: xcodeswift-package-managerswiftdate

解决方案


在 Xcode 12(也在 Xcode 12.2 beta 中)包含资源的 Swift 包的实现中似乎存在一个错误。

仅当您依赖于在主目标和单元测试目标中都具有资源(SwiftDate 确实如此)的包时,才会出现此问题。这个错误似乎只影响单元测试目标的编译,所以主应用程序目标应该仍然编译成功。


推荐阅读