Можем ли мы иметь ошибку «дубликаты символов» при использовании фреймворков в чистом swift? - PullRequest
0 голосов
/ 13 апреля 2020

Годы go, используя Obj C и фреймворки (и фреймворки внутри фреймворков), время от времени встречалась ошибка «дубликаты символов». Например, если вы создали платформу, включающую RestKit, а затем приложение, которое хотело использовать эту платформу, тоже использовало RestKit, у вас была эта ошибка. Один из способов исправить это - переименовать включенный исходный код в ваш фреймворк, используя префикс. Или просто избегайте использования сторонних зависимостей в вашей среде. Обратите внимание, что раньше мы использовали библиотеки stati c, а не динамические библиотеки c.

Возможно ли сегодня иметь такую ​​же проблему с чисто быстрыми приложениями / фреймворками и динамическими библиотеками c сегодня? Насколько я понимаю, swift использует концепцию модуля для пространств имен, чего у нас не было в Obj C.

Я имею в виду, возможно ли создать фреймворк, использующий Alamofire (скажем, версию 5), а затем создайте приложение, которое использует Alamofire (скажем, версия 5.0.1) И вашу платформу, которая тоже использует Alamofire?

1 Ответ

1 голос
/ 13 апреля 2020

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

Позвольте мне поделиться своим опытом.

У меня есть проект, подобный приведенному ниже.

Main Project -> uses PromiseKit via Cocoapods
My Framework -> uses PromiseKit via Cocoapods
Main Project uses My Framework

Я не сталкивался с такой проблемой при запуске этой установки. ИМО, надеюсь, это позаботится компилятор Swift.

...