пакет swift в двух целях в Xcode вызывает дублирование символов - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть две платформы в моем проекте, каждая из которых зависит от одного и того же пакета 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 с основной целью приложения.

...