У меня есть две платформы в моем проекте, каждая из которых зависит от одного и того же пакета Swift (в данном случае RxSwift, но я не думаю, что это важно).
Чтобы заставить проект собираться, я 'Мы должны были включить один и тот же пакет в обе цели (через список «Фреймворки и библиотеки» в общих настройках цели) - иначе, когда я пытаюсь импортировать пакет, он не может его найти.
Когда я запускаюВ моем приложении я вижу предупреждения в консоли, такие как:
objc[79287]: Class _TtC9Alamofire18UploadTaskDelegate is implemented in both
/Users/deanWombourne/Desktop/PackageManagerTest/DerivedData/PackageManagerTest/
Build/Products/Debug-iphonesimulator/Framework1.framework/Framework1 (0x110877e00)
and
/Users/deanWombourne/Library/Developer/CoreSimulator/Devices/2319A320-1A01-4784-B85E-272FF0F999CB/
data/Containers/Bundle/Application/D40DE3EA-DD78-4241-B307-070CDAF8BFA1/PackageManagerTest.app/PackageManagerTest (0x10f9858c8).
One of the two will be used. Which one is undefined.
, и иногда приложение вылетает в дублирующемся пакете.
Я протестировал приложение, создав версию безпроблема с дублирующимся пакетом (скопируйте / вставьте весь код в одну и ту же цель!), и тогда он работает нормально, так что это как-то связано с проблемой с дублирующимся пакетом.
Итак, в чем мой вопрос?
Есть ли способ в Xcode указать, что один пакет будет включен в две цели, а не просто дважды скопировать его в исполняемый файл?
В идеале я бы хотел указать ее как динамическую библиотеку, чтобы она вообще не заполнялась в исполняемый файл, а загружалась по требованию - но на этом этапе приветствуется любое решение!
РЕДАКТИРОВАТЬ
Я также получаю эту проблему, если у меня есть только одна инфраструктура, но она разделяет зависимость пакета RxSwift с основной целью приложения.