2016-10-11 30 views
7

Wystąpił problem z Xcode (za pomocą Swift), który mnie całkowicie zakłopotany. Zdaję sobie sprawę, że to pytanie zostało zadane i udzielono mi odpowiedzi, ale żadna z odpowiedzi nie zadziałała dla mnie, a moja sytuacja wydaje się być nieco inna niż pozostałe, ponieważ wszystkie moje kapsuły zawodzą (nie tylko konkretne). Wszyscy pracowali dobrze tydzień temu.Brak takiego modułu ... w Xcode

Używam Cocoapods do niektórych z najpopularniejszych frameworków Swift (np. Alamofire, Eureka, Kingfisher, SwiftyJSON itp.). Wszystko działało poprawnie w Xcode 7. Jednak jedna z (automatycznych) aktualizacji podskoczyła w mojej wersji Xcode, po czym stało się obowiązkowe, aby określić swój cel w podfile. Zrobiłem to i uruchomiłem podinstalację. Strąki są nadal obecne, ale teraz każde polecenie importu, które odnosi się do tych frameworków, zawodzi.

Początkowo myślałem, że to kwestia Alamofire, ponieważ to pierwsza, która zawiodła z powodu błędu "Brak takiego modułu" Alamofire ". Próbowałem wszystkiego, co mogłem z Alamofire, w tym następujące:

  • Czyste i odbudować
  • czystą kompilację folderze
  • Restart Xcode
  • komputer Re-boot
  • usunąć wszystkie dane pochodzące
  • Dodane framework do "Linked Frameworks and Libraries"
  • Dodano framework do "Link Binary with Libraries"
  • Zweryfikowane że jestem otwierając przestrzeń roboczą zamiast projektu
  • ponownie zainstalować CocoaPods
  • Ponownie zainstalować Xcode ver 7.3.1

Nic by usunąć „Nie ma takiego modułu ...” Błąd . W końcu usunąłem Alamofire ze strąków i właśnie przeciągnąłem projekt Alamofire do mojego projektu. Pozwoliło mi to na usunięcie instrukcji importu dla Alamofire. Jednak ku mojemu przerażeniu, następna struktura spowodowała "Brak takiego modułu". Przeniosłem kolejne trzy frameworki do mojego projektu i wygląda na to, że to będzie kontynuowane. Wygląda na to, że żaden z moich frameworków Pods nie jest już rozpoznawany. Zainstalowałem Xcode 8 i wypróbowałem to przy pomocy Swift 2.3, ale otrzymałem ten sam komunikat "Brak takiego modułu".

Naprawdę wolałbym używać Cocoapods, ponieważ sprawia, że ​​uaktualnienia są o wiele łatwiejsze, wraz z innymi bonusami. Zgaduję, że mam pewne złe ustawienia, które zepsuje wszystkie moje kapsuły, ale nie miałem szczęścia. Jest to trochę katastrofa, ponieważ program został zamknięty na kilka dni, bez śladu naprawy. Jeśli jest coś, co mogę zrobić lub pomóc w znalezieniu rozwiązania, daj mi znać. Jeśli ktokolwiek mógłby dostarczyć jakiekolwiek możliwe rozwiązania lub nawet rzeczy do wypróbowania, byłoby to bardzo cenne. Obecnie pracuję z Xcode w wersji 7.3.1.

Mój plik pod wygląda mniej więcej tak:

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

target 'Y2GOsp' do 
    use_frameworks! 

    # Pods for Y2GOsp 
    pod 'Alamofire', '~> 3.0' 
    pod 'AlecrimCoreData', '~> 4.0' 
    pod 'Kingfisher', '~> 2.4' 
    pod 'Eureka', '~> 1.6' 
    pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7' 
    pod 'PhoneNumberKit', '~> 0.1' 
    pod 'PKHUD' 
    pod 'Dollar' 
end 

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

Czy próbowałeś ponownie zainstalować lub zaktualizować CocoaPods? –

+0

@ l'L'l, tak, zainstalowałem go kilka razy. Próbowałem nawet wersji --pre. Ponownie zainstalowałem Xcode, ponieważ moja pierwotna instalacja została uaktualniona do wersji 8. Wyszukałem instalator wersji 7.3 i ponownie go zainstalowałem, ale wciąż dostaję błąd. – Lastmboy

+1

Kiedy próbowałeś dodać frameworki do swojego projektu, co jest ustawione dla 'search settings> frameworks search path'? –

Odpowiedz

14

Komentarze od @ l'L'l doprowadziły mnie do rozwiązania. Poszedłem do

build settings > frameworks search path 

i ustawić ją na następujące kwestie:

$(inherited) (non-recursive) 
$(PROJECT_DIR)/build/Debug-iphoneos (non-recursive) 
$(SRCROOT) (recursive) 

To jest teraz poprawnie znalezienie ram piętrowe.

0

spróbować zrobić wersję swojego pakietu SDK do wcześniejszych wersji

pod 'Alamofire', '~> 3.0' 
pod 'AlecrimCoreData', '~> 4.0' 
pod 'Kingfisher', '~> 2.4' 
pod 'Eureka', '~> 1.6' 
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'xcode7' 
pod 'PhoneNumberKit', '~> 0.1' 
pod 'PKHUD' 
pod 'Dollar' 

na przykład zmieniać od 3,0 do dostępnej wersji poprzedniej, pracował kiedyś dla mnie, gdy miałem do czynienia z tym samym problemem.

pod 'Alamofire', '~> 2.4' #I am assuming prev available version is 2.4 

Ale to nie musi być „Alamofire” Wynik wersja „Nie ma takiego modułu”, można spróbować każdy w swoim liście w pliku pod.

+0

Wygląda na to, że to może zadziałać. Tak czy inaczej, jestem obok Alamofire. Teraz dostaję błąd na Eureka. Będę walczył z tym bardziej rano i dam ci znać moje wyniki. Dzięki. Dobre imię też ... mam na imię Sheldon :) – Lastmboy

+0

Cześć Sheldon. Wybierz prawidłową odpowiedź, jeśli uważasz, że to prawda. –

+0

Bez powodzenia :(Myślałem, że działa przez chwilę, ale potem zdałem sobie sprawę, że usunąłem instrukcje importowania, więc po prostu przeszedłem do następnego i ostatecznie zawiodłem później w kompilacji. Z powrotem, potem znowu zaczęło padać. – Lastmboy

0

w strąkach złożyć

Odkomentuj poniżej linii zdefiniować globalną platformę dla swojego projektu

Platforma: iOS '10 .0'

use_frameworks!

Teraz w Xcode

a) Oczyścić projekt

b) Upewnij się, że wszystkie "strąki"> "Build Settings"> "Budowanie Aktywny Architecture Only" jest ustawiony na " NO”

c) teraz Build Project

0

Upewnij się, że otworzył plik .xcworkspace w Xcode i nie tylko plik .xcodeproj.