Невозможно связать разветвленную библиотеку с проектом через CocoaPods - PullRequest
0 голосов
/ 09 декабря 2018

У меня странная проблема, и я не могу понять, что я делаю неправильно.Любые идеи будут высоко оценены.Я использую Firebase UI , чтобы настроить его под свои нужды.

Что я хочу сделать:

Я хочу удалитьтекст «Назад» из панели навигации, потому что у меня есть пользовательская кнопка «Назад», и теперь она сталкивается с задним элементом библиотеки.Я не могу настроить это через Api SDK, поэтому я решил удалить строки, которые устанавливают текст «Назад» в 2 контроллерах представления.

Что я сделал:

Поэтому я разветвил репо и внес изменения непосредственно через веб-интерфейс GitHub.Я зафиксировал свои изменения в моем разветвленном репо.

Что я пробовал:

1. Я подписался на этот пост CocoaPods иGitHub форкс и попробовал первое предложение - указав CocoaPods на использование моего разветвленного репо с моим последним коммитом.Я получил [!] Failed to download 'FirebaseUI'. ошибку, когда сделал pod update.

2. Я попробовал второе предложение в посте - клонировал свой раздвоенный репо с необходимыми изменениями и указывал на него какместный стручокЯ смог pod update, но затем я получил ошибки сборки в XCode - Duplicate interface definition for class.

Возможно ли, что это происходит из-за того, что FirebaseUI состоит из разных подбиблиотек, и мне нужно использовать только 3 из них?Вот что я хочу использовать, как в моем Podfile:

pod 'FirebaseUI/Auth'
pod 'FirebaseUI/Google'
pod 'FirebaseUI/Facebook'

Вот так выглядит мой Podfile:

pod 'FirebaseUI/Auth', :path => '~/Developer/Forked/FirebaseUI-iOS'
pod 'FirebaseUI/Google', :path => '~/Developer/Forked/FirebaseUI-iOS'
pod 'FirebaseUI/Facebook', :path => '~/Developer/Forked/FirebaseUI-iOS'

и Podfile.lock

PODS:
- FirebaseUI/Auth (5.2.2):
- Firebase/Auth (~> 5.0)
- FirebaseUI/Facebook (5.2.2):
- FBSDKLoginKit (~> 4.0)
- FirebaseUI/Auth
- FirebaseUI/Google (5.2.2):
- FirebaseUI/Auth
- GoogleSignIn (~> 4.0)

DEPENDENCIES:
- FirebaseUI/Auth (from `~/Developer/Forked/FirebaseUI-iOS`)
- FirebaseUI/Facebook (from `~/Developer/Forked/FirebaseUI-iOS`)
- FirebaseUI/Google (from `~/Developer/Forked/FirebaseUI-iOS`) 

EXTERNAL SOURCES:
FirebaseUI:
:path: "~/Developer/Forked/FirebaseUI-iOS"

Точное сообщение об ошибке в Xcode:

../Pods/FirebaseUI/FirebaseAuthUI/FUIAuthBaseViewController.h:28:1: Duplicate interface definition for class 'FUIAuthBaseViewController'

Где FUIAuthBaseViewController - один из 2 отредактированных контроллеров представления.

1 Ответ

0 голосов
/ 09 декабря 2018

Из вопроса , на который вы ссылаетесь , спецификатор pod в Podfile должен ссылаться на местоположение источника для разветвленного репо, например:

pod 'FirebaseUI/Auth', :git => 'https://github.com/.../FirebaseUI.git', :commit => 'd35...2bc1'

Я нахожу второй ответ проще указывать на локальный путь:

pod 'FirebaseUI/Auth', :path => '~/mypath-to/FirebaseUI'

Убедитесь, что все ссылки FirebaseUI изменены в Podfile, изучив сгенерированный Podfile.lock.

Если у вас все еще есть проблемы, поделитесь Podfile и Podfile.lock, чтобы помочь другим диагностировать.

...