Повторяющиеся символы с CocoaPods и SwiftPM - PullRequest
1 голос
/ 31 января 2020

С тех пор как Xcode11 мы мигрировали с CocoaPods на SwiftPM. К сожалению, некоторые зависимости еще не поддерживают SwiftPM. Как и Firebase .

Это не настоящая проблема, поскольку они оба могут сосуществовать рядом друг с другом.
Но с тех пор (я думаю, что Firebase iOS SDK v6.13.0) они добавили зависимость к PromisesObjC.
, что само по себе не является проблемой, но большинство наших проектов (и (под) зависимостей) используют обещания от google через SwiftPm.

Теперь проблема в том, что и Обещания SwiftPM и Firebase CocoaPods один использует FBLPromises , и это приведет к следующей ошибке:

duplicate symbol '_FBLPromiseRetryDefaultAttemptsCount' in:
    /path/Products/Debug-iphonesimulator/FBLPromises.o
    /path/Products/Debug-iphonesimulator/PromisesObjC/libPromisesObjC.a(FBLPromise+Retry.o)
duplicate symbol '_FBLPromiseRetryDefaultDelayInterval' in:
    /path/Products/Debug-iphonesimulator/FBLPromises.o
    /path/Products/Debug-iphonesimulator/PromisesObjC/libPromisesObjC.a(FBLPromise+Retry.o)
duplicate symbol '_FBLWaitForPromisesWithTimeout' in:
    /path/Products/Debug-iphonesimulator/FBLPromises.o
    /path/Products/Debug-iphonesimulator/PromisesObjC/libPromisesObjC.a(FBLPromise+Testing.o)
duplicate symbol '_OBJC_CLASS_$_FBLPromise' in:
    /path/Products/Debug-iphonesimulator/FBLPromises.o
    /path/Products/Debug-iphonesimulator/PromisesObjC/libPromisesObjC.a(FBLPromise.o)
duplicate symbol '_OBJC_METACLASS_$_FBLPromise' in:
    /path/Products/Debug-iphonesimulator/FBLPromises.o
    /path/Products/Debug-iphonesimulator/PromisesObjC/libPromisesObjC.a(FBLPromise.o)
ld: 5 duplicate symbols for architecture x86_64

В настоящее время единственный способ исправить это - установить для Firebase CocoaPods зависимость v6.11.0

Мой текущий Подфайл :

source 'git@github.com:CocoaPods/Specs.git'

workspace 'Workspace'

platform :ios, '11.0'

use_modular_headers!
inhibit_all_warnings!

install! 'cocoapods',
    :generate_multiple_pod_projects => true,
    :incremental_installation => true

target 'HandpickedFamilyApp' do
    pod 'Firebase/Core'
    pod 'Firebase/RemoteConfig'
    pod 'Firebase/Analytics'
    pod 'Firebase/Performance'
    pod 'Fabric'
    pod 'Crashlytics'
    pod 'SwiftLint'

    script_phase :name => 'Run Fabric',
                :script => '"${PODS_ROOT}/Fabric/run"',
                :input_files => ['$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)']
end

1 Ответ

0 голосов
/ 31 января 2020

После замены моего поискового запроса в Google «дублирующие символы cocoapods swiftpm» на «дубликаты символов cocoapods carthage» у меня возникла похожая проблема с другой зависимостью.
И я по сути забыл все о параметре use_frameworks!.

Добавление этого к моему Podfile исправило это для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...