XCFramework добавляет стороннюю библиотеку с дублирующими символами диспетчера пакетов Swift

#ios #macos #frameworks #xcframework

Вопрос:

Привет, у меня есть следующий пример использования, и я строил пару дней и, наконец, получил плохое решение, которое я на самом деле не связываю и действительно нуждаюсь в некоторой помощи. Буду очень признателен, если кто-нибудь поможет.

Что у меня есть:

У меня есть фреймворк, который использует Alamofire в качестве зависимости от диспетчера пакетов Swift. Я создаю эту платформу для распространения с помощью Alamofire, она автоматически встроена, и я хочу, чтобы она не была встроена, просто чтобы использовать ее для разработки, пока другой проект не использует ее и не добавит ее туда. Следующий шаг-добавить его в другой проект. Если я не добавлю Alamofire в новый проект, проблем не возникнет. Если я добавлю Alamofire, появятся дубликаты символов. У кого-нибудь есть предложения, как это исправить? В настоящее время у меня нет хорошего подхода, я перепробовал почти все, и, насколько я понимаю, он все еще находится в разработке…

Пример: MyFramework использует Alamofire с SPM, а приложение использует SPM с Alamofire.Я получаю дубликаты символов.

Чего я ожидаю:

Способ добавить Alamofire в мой рамочный проект, чтобы использовать его для разработки. После того, как я создам свою xcframework и добавлю ее в следующий проект, чтобы добавить туда библиотеку Alamofire и работать без повторяющихся символов.

Очень признателен за любую информацию.

Ответ №1:

Вы можете попробовать @_implementation только импортировать Alamofire вместо импорта Alamofire

Это не позволит использовать импорт Alamofire в качестве общедоступного интерфейса в .swiftmodule

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

1. Я уже нашел решение, и я использую cocoapods в любом состоянии, я попробовал то, что вы предложили, и это дало мне ту же проблему…

2. @nikiizvorski не могли бы вы дать мне краткое описание того, как вы достигаете этого с помощью cocoapod? Я использую SPM, и у меня возникли проблемы с включением/экспортом сторонних статических фреймворков в мою xcframework. Спасибо.

3. Вы должны позволить cocoapods управлять зависимостью. И установите зависимость над cocoapod, если вы сделаете это с помощью SPM, к сожалению, у вас всегда будет проблема. По крайней мере, на данный момент это так. Я использую cocoapods с опцией use-framework, которая включает и извлекает всю работу xcframework для нужных мне библиотек.