Мое приложение состоит из множества проектов (фреймворков), по одному для каждой основной функции, и общей фреймворк со всеми видами вещей, к которым мне нужно получить доступ во множестве моих функций.
Я использую диспетчер пакетов Swift Xcode 11 для добавления зависимостей.
Общая структура содержит зависимость RxSwift, которую я использую на протяжении всего проекта.
У меня возникают проблемы, когда я пытаюсь использовать RxTest в любой из моих фреймворков.
Если я добавлю RxTest через SPM непосредственно к цели теста и выполню тесты, я получу
не удалось отделить суперкласс «имя класса» от искаженного имени «другое имя класса»
и много
Класс «имя класса» реализован как в «общем пути платформы», так и в «пути целевой проверки»
где все эти классы связаны Rx. Ошибка «не удалось разобрать» приводит к сбою теста и возникает, только когда я пытаюсь инициализировать класс RxTest.
Если я добавлю RxTest в общую инфраструктуру, тесты будут работать нормально, но когда я запускаю приложение, я получаю
dyld: библиотека не загружена: @ rpath / XCTest.framework / XCTest
Это имеет смысл, потому что я добавляю тестовый фреймворк в не тестовый фреймворк, и это не то, что нужно делать.
В общем, я не смог получить конфигурацию, в которой и тесты, и приложение работают нормально. Либо приложение запускается, либо тесты запускаются.
Как я могу заставить это работать? Есть ли способ включить RxTest в общую инфраструктуру только тогда, когда я строю его на тестовой цели? Или RxTest должен быть включен только в тестовые объекты, и мне не хватает какой-либо конфигурации?