2015-03-03 19 views
12

Podczas próby dodania pod install nowego Podfile do istniejącego projektu Xcode (iOS), pojawia się następujący komunikat o błędzie z terminalu: [!] Unable to find a specification for 'XCDYouTubeKit (~> 2.1.1)'. Podfile że starałem się obciążeniem wygląda następująco:Cocoapods - Nie można znaleźć specyfikacji dla [Github framework]

# Uncomment this line to define a global platform for your project 
# platform :ios, '6.0' 

target 'DemoApp' do 

pod 'XCDYouTubeKit', '~> 2.1.1' 

end 

target 'DemoAppTests' do 

end 

target 'TheDayByDay' do 

end 

Dodatkowo, struktura plików na moim projekcie Xcode jest następujący:

DemoApp 
    Podfile (file) 
    Pods (directory) 
    DemoApp (directory) 
    DemoApp.xcodeproj (file) 
    DemoAppTests (directory) 

co ta instalacja nie działa? Gdzie się mylę? Używam Cocoapods 0.35.0. Czy brakuje mi pliku pod spec? Nie rozumiem, co to jest lub jaka byłaby struktura plików takiego pliku.

+2

można spróbować uruchomić 'strąk repo update' i zobaczyć, czy ten błąd zniknie? W przeciwnym razie usuń '~/.cocoapods', a następnie uruchom' konfigurację pod '' –

+0

@KeithSmiley 'update aktualizacji pod położeń' nie działa, ale dlaczego mam usunąć' ~/.cocoapods'? Czy to nie jest cała biblioteka instalacji strąków kakao? Jak by to pomogło? – jamesharnett

+0

Aktualizacja @KeithSmiley pod repo faktycznie zadziałała dla mnie. Zaktualizował ton innych repozytoriów w moim komputerze, czy możesz wyjaśnić, dlaczego to zadziała? – code4latte

Odpowiedz

33

Powołując się rozmowy w komentarzach, będziemy chcieli, aby wykonać sudo rm -fr ~/.cocoapods/repos/master ponieważ będzie to usunąć wszystkie fałszywe i uszkodzone repo, które masz w komputerze, aby dać mu szansę, aby zaludnić po przerobić pod setup, which'll przywrócić ci nową konfigurację Cocoapods. Dodatkowo będziesz chciał podać sudo xcode-select --switch /applications/Xcode.app, gdzie znajduje się nowa wersja Xcode. To była kolejna procedura instalacyjna, którą musiałem wykonać, aby dokończyć poprawkę. Stamtąd, po prostu wykonaj pod setup i jesteś gotowy do uruchomienia pod install, aby zintegrować wszystkie biblioteki, które chcesz!

+1

Do tego nie powinieneś potrzebować 'sudo'. Dzięki za wyjaśnienie! –

+1

Rozwiązało to mój problem, gdy przerywałem proces "aktualizacji poda" i zacząłem otrzymywać ten sam komunikat o błędzie. +1! – user1021430

+1

Dobrze, dziękuję, mój przyjacielu – Gabox

1

Umieszczę to tutaj na przyszłość: W moim przypadku problem polegał na wadliwym podspec z problemem składni, który został przeniesiony na pilota. Podfile zawierał odniesienie do konkretnego zatwierdzenia github. Podobno w tej sytuacji CocoaPods daje dość niepomyślny komunikat o błędzie "brakujący podspec", chociaż podspec jest zdecydowanie tam, tylko spartaczony.

Rozwiązanie: pobierz plik podspec (np. Klonując całe repo) i uruchom pod spec lint.

Alternatywnie: klonuj lokalnie lokalnie i zmień odniesienie Podfile do lokalnej ścieżki. Wykonanie pod install w tym przypadku pokaże znacznie bardziej przydatny komunikat o błędzie. Tak:

[!] Invalid `<some>.podspec` file: syntax error, unexpected tCONSTANT, expecting keyword_end 
...eGraphics', 'QuartzCore, 'IOKit', 'XCTest' 

Jak widać, w moim przypadku był to brakuje cytat po QuartzCore

5

Można też zmusić go, ustawiając go tak:

pod „yourpodframework” ,: git => 'https://github.com/username/yourpodframework'

+0

Dlaczego potrzebujemy dodać ścieżkę źródłową, aby uruchomić pod działa, co może być przyczyną działania niektórych kapsuł po prostu - pod 'podname', a niektóre wymagają dodatkowej metody jak wyżej. – KiranJasvanee

+0

to dlatego, że strąki, które wymagają tylko nazwy poda, są wdrażane w publicznym repozytorium podspec, a drugie są wdrażane w prywatnym reporze podspec. więc musisz podać ścieżkę. – nferocious76

+0

Czy możesz podać dowolny link dla odniesienia, w jaki sposób możemy go skonfigurować. Przesłałem moją bibliotekę github i podałem pełną ścieżkę, aby działało. – KiranJasvanee

4

Miałem ten sam problem. Ale muszę naprawić mój problem z następującą procedurą.

source 'https://github.com/CocoaPods/Specs.git' 
    platform :ios, '9.0' 

    target 'Test' do 

     use_frameworks! 

# pod 'Alamofire', '~> 4.0' 
    pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git' 

# pod 'SwiftyJSON' , '~> 3.1' 
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' 

#  pod 'SideMenu' '~> 2.0' 
     pod 'SideMenu', :git => 'https://github.com/jonkykong/SideMenu.git' 

#  pod 'SDWebImage', '4.0.0-beta2' 
     pod 'SDWebImage', :git => 'https://github.com/rs/SDWebImage.git' 

#  pod 'SwiftDate', '~> 4.0' 
     pod 'SwiftDate', :git => 'https://github.com/malcommac/SwiftDate' 



end 

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
     config.build_settings['SWIFT_VERSION'] = '3.0' 
    end 
    end 
    end 

Links for more information

+0

Naprawiono to dla mnie, dzięki! Nie jestem pewien, dlaczego tak się dzieje. Niektóre działają dobrze z linią, którą skomentowałeś, a inne wymagają odwołania do git. – Scooter

Powiązane problemy