Менеджер пакетов Swift — Неожиданные повторяющиеся задачи: целевые AppTests (приложение проекта) имеют команду копирования — SwiftDate

#xcode #swift-package-manager #swiftdate

#xcode #swift-package-manager #swiftdate

Вопрос:

Я переношу свой проект из Carthage в SPM. Я использую Xcode 12.0. Сборка основного приложения работает без каких-либо проблем, но я больше не могу запускать свои модульные тесты. Я использую ту же платформу SwiftDate версии 6.2.0 как в моем целевом приложении (SPMD), так и в моем тестовом приложении (SPMDTests).

Я уже решил 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. . Я следил за статической динамической ошибкой Xcode в менеджере пакетов Swift.

Я могу запустить свое приложение, но не могу запустить свои модульные тесты. Ошибка гласит

 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 или я что-то пропустил?

Комментарии:

1. Не могли бы вы решить эту проблему?

2. 2021, и я только что столкнулся с этим. Еще не повезло? Может быть, в последней бета-версии XCode этой проблемы нет?

Ответ №1:

Похоже, что в реализации пакетов Swift, которые включают ресурсы в Xcode 12 (также в бета-версии Xcode 12.2), есть ошибка.

Эта проблема возникнет только в том случае, если у вас есть зависимость от пакета, у которого есть ресурсы (SwiftDate есть) как для вашей основной цели, так и для вашей цели модульного тестирования. Эта ошибка, похоже, влияет только на компиляцию цели модульного тестирования, поэтому основная цель приложения все равно должна успешно скомпилироваться.

Комментарии:

1. Да, это влияет только на мою цель модульного тестирования. Вы знаете, существует ли официальное сообщение об ошибке?

2. Несколько дней назад я открыл отчет об отзывах (FB8751233), пока ответа не было. Я считаю, что это ошибка в «новой системе сборки» в Xcode и в том, как она реализовала обработку пакетов swift, содержащих ресурсы, поэтому я не открывал отчет об ошибке в трекере ошибок проекта с открытым исходным кодом.

3. Я столкнулся с той же проблемой, вы нашли способ ее обойти?

4. Просто полагаясь на SO, мы видим ту же проблему и отправили как радар, так и bugs.swift.org/browse/SR-13739

5. Я также открыл отзыв, ответа от Apple пока нет.