Cepat. Tidak dapat membangun modul objektif-c 'Alamofire'

117

Pemasangan submodul vanilla baru dari Alamofire, menggunakan XCode6 dan mengikuti petunjuk ke T. Ada sesuatu yang tidak pas di sini. Kesalahan yang saya dapatkan adalah "Tidak dapat membangun modul objektif-c" alamofire "pada impor alamofire. Berikut adalah tangkapan layar dari kesalahan yang saya dapatkan:

masukkan deskripsi gambar di sini Dan konfigurasi saya:

masukkan deskripsi gambar di sini

stopshinal
sumber
Saya rasa Anda harus menginstal alamofire sesuai instruksi yang diberikan di sini github.com/Alamofire/Alamofire
Saurabh Prajapati
apakah kamu membuatnya bekerja? itu berhasil untuk saya dan setelah yang lain "Bangun dan jalankan" itu berhenti dan saya mendapat pesan kesalahan yang sama ... :(
Georg
2
Seorang kolega baru saja mendapat pesan kesalahan yang sama tetapi alasannya ternyata dia masih menggunakan Xcode 6.1 (ini adalah era 6.3 saat saya menulis ini). Mengatakan ini hanya untuk dicatat, jika ada orang lain yang berjuang dengan hal yang sama.
villapossu

Jawaban:

103

Jika ini terjadi, buat kerangka kerja secara terpisah terlebih dahulu. Dalam kasus Anda:

  • Ubah skema ke Alamofire
  • Bangun ( ⌘B )
  • Ubah kembali ke skema Anda
  • Lari
Daniel Larsson
sumber
3
Jawaban yang bagus; Saya lupa mengubah skema build untuk memperbaiki kesalahan semacam ini!
profesor
1
Terima kasih untuk bantuannya.
Tidane
5
Jika Anda harus membangun skema secara terpisah, itu mungkin berarti Anda tidak memiliki kerangka kerja yang ditetapkan sebagai dependensi target dalam setelan build aplikasi Anda dengan benar. Lakukan ini dan Anda tidak perlu membuatnya secara manual.
Charles A.
Saya memilih ini, karena berfungsi di Xcode. Sayangnya itu tidak akan berfungsi jika membangun dari baris perintah atau jika membangun untuk Rilis.
Eneko Alonso
Ini memperbaiki masalah yang saya alami dengan GoogleApiClient / Drive. Build akan berhasil, tetapi segera setelah ada perubahan pada file, Xcode akan mengeluh tentang impor tersebut.
Nick Alexander
53

Masuk ke Developer / Xcode / DerivedData dan hapus folder kerangka kerja Anda. (Atau hapus saja DerivedData itu sendiri)

Jika Anda memiliki build aplikasi Anda di simulator yang sedang berjalan, Anda harus menghapus aplikasi di sana.

Kemudian Bersihkan & Bangun

Sean Howell
sumber
Ini bekerja untuk saya juga, tetapi kemudian saya menemukan beberapa perintah yang dihasilkan, tautan ini akan membantu: stackoverflow.com/questions/50718018/… .
Bhimbim
32

Ini selalu berhasil untuk saya:

  1. Keluar dari Xcode
  2. Menghapus ~/Library/Developer/Xcode/DerivedData
  3. Ubah skema kerangka kerja Anda dan buat ⌘B
  4. Ubah ke skema aplikasi Anda dan buat ⌘B
Sam Soffes
sumber
22

Menghapus folder DerivedData dan membersihkan serta membangun proyek memecahkan masalah ini untuk saya.

Isuru
sumber
15

Coba yang berikut ini dalam urutan ini dan salah satu langkah akan berhasil.

  1. Cmd+ B- Membangun ruang kerja dan mungkin harus membangun target atau modul yang kita inginkan.

  2. Cmd+ Kdan kemudian Cmd+ B- Bersihkan lalu Bangun

  3. Cmd+ Shift+ Option+ Kdan Cmd+ B- Bersihkan Build Folder

  4. Keluar dari Xcode, Hapus Data yang Diperoleh, luncurkan Xcode dan Cmd+ Shift+ Option+ Klalu Cmd+B

Ini merupakan cara terbersih untuk membersihkan data turunan dan cache lain dari Xcode.

ravisekahrp.dll
sumber
Bagi mereka yang menggunakan iCloud sync (Misalnya, memiliki proyek di folder Dokumen sehingga akan mudah sync ke beberapa Mac), cek file dengan nama: XXX 2.swift. Cari dan hapus semuanya, lalu jalankan pod install.
John Pang
12

Jika Anda mendapatkan error ini saat mencoba mengimpor framework dinamis, pastikan framework tersebut disertakan dalam Dependensi Target target.

Project > "Target" > Build Phases > Target Dependencies

David James
sumber
Selain itu, jika Anda bekerja dengan kerangka kerja lain yang dikembangkan di ruang kerja yang sama, pastikan untuk menambahkan Proyek sebagai pustaka tertaut alih-alih file kerangka, jika tidak kerangka tidak akan terlihat sebagai ketergantungan target.
Dávid Pásztor
11

Membangun bersih berhasil untuk saya.

  1. Bangun bersih untuk Alamo
  2. Bangun bersih untuk HTTPDemo
Nick Mitchell
sumber
6

Komentari impor dan semua kode yang menggunakannya, buat, jalankan, lalu hapus komentar. Itu berhasil untuk saya ...

xytor
sumber
1

Saya menyelesaikan masalah ini di salah satu proyek hybrid Objective-C / Swift saya.

Di file penghubung Objective-C Anda, tambahkan baris berikut:

#import <Alamofire/Alamofire.h>

Eddie Lau
sumber
0

Pod apa pun yang gagal dibangun dapat menyebabkan kesalahan ini juga. (dalam kasus saya, pod lama yang menggunakan sintaks usang gagal dibuat).

Anda dapat mencoba pod updatememperbarui pod Anda ke versi terbaru dan melihat bagaimana hasilnya.

Gang Fang
sumber
Bagi mereka yang menggunakan iCloud sync (Misalnya, memiliki proyek di folder Dokumen sehingga akan mudah sync ke beberapa Mac), cek file dengan nama: XXX 2.swift. Cari dan hapus semuanya, lalu jalankan pod install.
John Pang
0

Perbaikan gila untuk masalah ini - Hanya solusi yang berfungsi untuk saya

Buat skema baru dan tambahkan kerangka kerja yang menunjukkan kesalahan. Dalam hal ini adalah 'Alamofire'. Jalankan semua skema itu.

Setelah Anda mengkompilasi semua skema, target proyek Anda juga akan berfungsi dengan baik.

Ini mungkin tampak seperti perbaikan yang gila tetapi hanya solusi yang berfungsi untuk saya.

Saranjith
sumber
0

Jika arsitektur yang valid dari proyek Alamofire tidak berisi arsitektur yang valid dari proyek Anda, ini akan terjadi kesalahan "Tidak dapat membangun modul objektif-c ..".

Tambahkan arsitektur ini i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 ke ' Arsitektur Valid ' proyek Alamofire pada ' Pengaturan Bangun '.

Buat perangkat target yang sama untuk kedua proyek. Misalnya, pertama-tama, buat proyek Alamofire untuk iPhone 8 (13.2), lalu buat proyek Anda untuk simulator yang sama.

Jika pembangunan proyek Alamofire berlangsung sangat singkat artinya sekitar 0,5 detik, berarti proyek Alamofire terjadi error karena arsitektur simulator yang dipilih tidak pada Arsitektur yang Valid .

Yusuf Demirci
sumber