2015-06-30 16 views
30

Próbuję sklonować projekt z repozytorium bitbucket i otrzymuję komunikat o błędzie Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation) podczas próby uruchomienia projektu Xcode w obszarze roboczym. Oto kroki, które podjąłem, jeśli ktokolwiek mógłby mi powiedzieć, co robię źle, byłoby wspaniale!Błąd Pod w Xcode "Id: framework nie został znaleziony Pods"

  1. git clone (link to bitbucket)
  2. zmianie ustawień konfiguracyjnych w projekcie strąki Xcode do none zarówno dla debugowania i zwolnij
  3. wykonywane pod install
  4. otworzył Xcode plik obszaru roboczego
  5. starał się budować w Xcode i otrzymał błąd Id: framework not found Pods clang: error: linker command failed with exit code 1 (use -v to see invocation)

Edycja Oto podfile:

# Uncomment this line to define a global platform for your project 
platform :ios, '8.0' 
use_frameworks! 
source 'https://github.com/CocoaPods/Specs.git' 

target 'Oncarb' do 
    pod 'Alamofire' 
    pod 'SwiftyJSON', '~> 2.2.0' 
end 

#target 'OncarbTests' do 
# pod 'Alamofire' 
# pod 'SwiftlyJSON', '~> 2.2.0' 
#end 

Czy istnieje krokiem mi brakuje?

Dziękujemy!

+0

Musisz użyć [cocoapods] (https://cocoapods.org/) – webo80

+0

Czy dodałeś frameworki strączków do plików binarnych Embedded? Często jest to konieczne, jeśli chcesz zbudować na prawdziwym urządzeniu – Dean

+0

@Pami - czy mógłbyś również opublikować swój Podfile? –

Odpowiedz

120

ten został ustalony dla mnie:

  1. otworzyć przestrzeń roboczą.
  2. Kliknij niebieską ikonę projektu (która rozwija się do drzewa plików) po lewej stronie ekranu.
  3. Po prawej stronie wybierz "Cele" (w przeciwieństwie do "Projekt" - Projekt jest niebieski, Celem jest jak ołówek i linijki i pędzel podejmowania trójkąt)
  4. kliknij na zakładkę General
  5. przejść do „połączonych ram i Bibliotek” sekcji (całą drogę na dole)
  6. usunąć Pods frameworks
  7. Dodaj Alamofire i SwiftyJSON

W moim przypadku nie działało, dopóki nie usunąłem struktur strączków, ale mam wrażenie, że jest to obejście problemu. Być może ktoś z większym doświadczeniem może komentować.

+1

Pozwolił mi także pracować po usunięciu frameworku Pods, zamknięciu Xcode, aktualizacji działającego poda, a następnie Clean/Build. –

+1

Jest tak wiele innych błędnych odpowiedzi na ten temat.> Dzięki za zepsucie kroków! – Decoded

+1

Usunięcie "Pod.framework" z "Embedded Binaries" zadziałało dla mnie – DTHENG

23

Czasami po zmianie nazwy celu lub przenoszeniu czegoś, możesz uszkodzić instalację strąków. Na szczęście istnieje prostszy sposób na rozwiązanie problemu niż rozwiązanie sudo make install.

  1. Uruchom pod deintegrate, aby usunąć wszelkie ślady Cocoapodów z projektu.
  2. Ponownie uruchom pod install, aby dodać wszystko ponownie.

To wszystko, naprawione.

+1

. Pracowałem dla mnie, dzięki! –

+0

Działa to również w przypadku problemów z modułem Firebase i potrzebą użycia funkcji dziedziczenia! : complete' w moim celu testowym – richy

1

W moim przypadku miałem kilka ramek wymienionych na czerwono. Zostały one pozostawione z poprzednich konfiguracji Podfile. Po prostu usunąłem te ramy wymienione na czerwono i problem został naprawiony.

5

Moje problemy pojawiają się, gdy uruchomiłem test, otrzymałem ten błąd.Bo po prostu zainstalować go w moim

target 'Project' do 
    pod 'xxx' 
end 

Należy także dodać go do swojej docelowej testu:

target 'ProjectTests' do 
    pod 'xxx' 
end 
+0

Cel testowy może być również zagnieżdżony wewnątrz innego celu, a następnie dziedziczy wszystkie te elementy. –

1

Jedną z możliwych przyczyn w wyraźnej importu ram Cocoapods do klasy testowej/w cel testowy.

przykład:

import XCTest 
//import AlamofireImage 
@testable import MyProject 

// instead of importing AlamofireImage: 
#if os(iOS) || os(tvOS) || os(watchOS) 
    import UIKit 
    public typealias Image = UIImage 
#elseif os(macOS) 
    import Cocoa 
    public typealias Image = NSImage 
#endif 

importowane AlamofireImage raz pierwszy, ponieważ bezpośrednio użyte typealias Image moim badaniu, jak zdefiniowano w AlamofireImage.

Jeśli tak łatwo jest zapobiec importowi, jak w moim przykładzie, zrób to. Właśnie skopiowałem definicję obrazu do mojego pliku klasy testowej.

Jeśli uważasz, że naprawdę potrzebujesz tego importu, przejdź do odpowiedzi Williama Hu. Przypis do jego odpowiedzi:

target 'MyProjectTests' do 
    pod 'OnlyThatFrameworkYouImportIntoYourTest' 
end 

Musisz dodać tylko te podpórki do celu testowego, które (musisz) zaimportować jawnie.

Powiązane problemy