Szybki. Nie można zbudować modułu „Alamofire” z celem-c

117

Świeża instalacja podmodułu waniliowego Alamofire przy użyciu XCode6 i podążaniu za wskazówkami do T. Coś tutaj nie pasuje. Pojawia się błąd „Nie można zbudować modułu z celem-c„ alamofire ”podczas importowania alamofire. Oto zrzut ekranu przedstawiający otrzymywany błąd:

wprowadź opis obrazu tutaj I moja konfiguracja:

wprowadź opis obrazu tutaj

stopshinal
źródło
myślę, że musisz zainstalować alamofire zgodnie z instrukcją podaną tutaj github.com/Alamofire/Alamofire
Saurabh Prajapati
sprawiłeś, że to zadziałało? zadziałało dla mnie i po kolejnym "Build and run" zatrzymało się i otrzymałem ten sam komunikat o błędzie ... :(
Georg
2
Kolega miał właśnie ten sam komunikat o błędzie, ale przyczyną okazało się, że nadal używa Xcode 6.1 (jest to era 6.3, w której to piszę). Mówiąc to tylko dla przypomnienia, gdyby ktoś inny miał problemy z tym samym.
villapossu

Odpowiedzi:

103

Kiedy tak się stanie, najpierw zbuduj frameworki osobno. W Twoim przypadku:

  • Zmień schemat na Alamofire
  • Kompilacja ( ⌘B )
  • Wróć do swojego schematu
  • Biegać
Daniel Larsson
źródło
3
Świetna odpowiedź; Byłem nieświadomy zmiany schematu kompilacji, aby naprawić tego rodzaju błędy!
profesor
1
Dzięki za pomoc.
Tidane
5
Jeśli musisz zbudować schemat osobno, prawdopodobnie oznacza to, że nie masz poprawnie ustawionej struktury jako zależności docelowej w ustawieniach kompilacji aplikacji. Zrób to i nie powinieneś musieć tworzyć go ręcznie.
Charles A.
Głosowałem za tym, ponieważ działa w Xcode. Niestety nie zadziała, jeśli budujesz z wiersza poleceń lub jeśli budujesz dla wydania.
Eneko Alonso
To rozwiązało problem, który miałem z GoogleApiClient / Drive. Kompilacja zakończy się powodzeniem, ale gdy tylko zostaną wprowadzone jakiekolwiek zmiany w pliku, Xcode będzie narzekał na import.
Nick Alexander,
53

Przejdź do Developer / Xcode / DerivedData i usuń folder dla swojej struktury. (Lub po prostu usuń same DerivedData)

Jeśli masz kompilację swojej aplikacji w działającym symulatorze, musisz usunąć tę aplikację.

Następnie Clean & Build

Sean Howell
źródło
To zadziałało również dla mnie, ale potem napotykam wiele poleceń, ten link pomoże: stackoverflow.com/questions/50718018/… .
Bhimbim
32

To zawsze działa dla mnie:

  1. Zamknij Xcode
  2. Usunąć ~/Library/Developer/Xcode/DerivedData
  3. Zmień schemat frameworka i skompiluj ⌘B
  4. Zmień schemat aplikacji i skompiluj ⌘B
Sam Soffes
źródło
22

Usunięcie folderu DerivedData oraz wyczyszczenie i zbudowanie projektu rozwiązało ten problem.

Isuru
źródło
15

Spróbuj wykonać następujące czynności w tej kolejności, a jedna z czynności powinna zadziałać.

  1. Cmd+ B- Buduje obszar roboczy i prawdopodobnie powinien zbudować cel lub moduł, który chcemy.

  2. Cmd+, Ka następnie Cmd+ B- Wyczyść, a następnie Zbuduj

  3. Cmd+ Shift+ Option+ Ki Cmd+ B- Wyczyść folder kompilacji

  4. Zamknij Xcode, usuń pochodne dane, uruchom Xcode i Cmd+ Shift+ Option+, Ka następnie Cmd+B

Jest to najczystszy możliwy sposób czyszczenia danych pochodnych i innych pamięci podręcznych z Xcode.

ravisekahrp
źródło
Dla tych, którzy za pomocą iCloud synchronizacji (na przykład, posiadające projekt w folderze Dokumenty więc byłoby łatwo synchronizacji do wielokrotnego Mac), sprawdź, czy plik o nazwie: XXX 2.swift. Wyszukaj i usuń je wszystkie, a następnie uruchom pod install.
John Pang
12

Jeśli otrzymujesz ten błąd podczas próby zaimportowania struktury dynamicznej, upewnij się, że struktura jest uwzględniona w zależnościach docelowych.

Project > "Target" > Build Phases > Target Dependencies

David James
źródło
Ponadto, jeśli pracujesz z inną strukturą opracowaną w tym samym obszarze roboczym, pamiętaj, aby dodać projekt jako bibliotekę połączoną zamiast pliku struktury, w przeciwnym razie struktura nie będzie widoczna jako zależność docelowa.
Dávid Pásztor
11

Build clean zadziałał dla mnie.

  1. Buduj czysto dla Alamo
  2. Twórz czyste dla HTTPDemo
Nick Mitchell
źródło
6

Skomentuj import i cały kod, który go używa, skompiluj, uruchom, a następnie odkomentuj. U mnie zadziałało ...

xytor
źródło
1

Rozwiązałem ten problem w jednym z moich projektów hybrydowych Objective-C / Swift.

W pliku pomostowym Objective-C dodaj następujący wiersz:

#import <Alamofire/Alamofire.h>

Eddie Lau
źródło
0

Każdy pod, którego nie udało się zbudować, może również spowodować ten błąd. (w moim przypadku nie udało się zbudować starej kapsuły używającej przestarzałej składni).

Możesz spróbować pod updatezaktualizować swoje pody do najnowszej wersji i zobaczyć, jak się sprawy mają.

Gang Fang
źródło
Dla tych, którzy za pomocą iCloud synchronizacji (na przykład, posiadające projekt w folderze Dokumenty więc byłoby łatwo synchronizacji do wielokrotnego Mac), sprawdź, czy plik o nazwie: XXX 2.swift. Wyszukaj i usuń je wszystkie, a następnie uruchom pod install.
John Pang
0

Szalone rozwiązanie tego problemu - tylko działające rozwiązanie dla mnie

Utwórz nowy schemat i dodaj strukturę, która wyświetla błąd. W tym przypadku „Alamofire”. Uruchom wszystkie te schematy.

Po skompilowaniu wszystkich schematów cel projektu również będzie działał dobrze.

Może się to wydawać szaloną poprawką, ale dla mnie tylko działającym rozwiązaniem.

Saranjith
źródło
0

Jeśli prawidłowe architektury projektu Alamofire nie zawierają prawidłowych architektur Twojego projektu, pojawia się błąd „Nie można zbudować modułu celu-c ..”.

Dodaj te architektury i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 do „ Prawidłowych architektur ” projektu Alamofire w „ Ustawieniach kompilacji ”.

Zbuduj to samo urządzenie docelowe dla obu projektów. Na przykład najpierw utwórz projekt Alamofire dla iPhone'a 8 (13.2), a następnie utwórz projekt dla tego samego symulatora.

Jeśli budowa projektu Alamofire trwa bardzo krótko, co oznacza około 0,5 sekundy, oznacza to, że projekt Alamofire wystąpił błąd, ponieważ architektura wybranego symulatora nie znajduje się w prawidłowych architekturach .

Yusuf Demirci
źródło