Saat ini saya sedang coding di Swift, dan saya punya kesalahan:
Tidak ada modul Sosial seperti itu
Tapi saya tidak mengerti, karena modulnya ada di proyek saya, dinyatakan dalam "Framework dan Perpustakaan Tertaut" dan dalam "Binari Tertanam".
Kerangka kerjanya ada di Objective-C, jadi saya menulis Bridge Header untuk itu.
Tolong, bagaimana saya bisa membuat Xcode mengenali kerangka kerja?
#import "Social/Social.h"
platform :ios, '10.0'
. Itu solusinya.Jawaban:
Saya tidak yakin mengapa ini terjadi, tetapi salah satu cara untuk memecahkan masalah Anda adalah dengan masuk ke pengaturan build Anda dan mendefinisikan Path Framework Search Paths ke folder yang berisi frameworks yang dimaksud. Jika kerangka kerja ditempatkan di direktori proyek Anda, cukup mengatur jalur pencarian kerangka kerja
$(SRCROOT)
dan mengaturnya menjadi rekursif.sumber
Project Build Settings
sebagai gantinyaTarget Build Settings
.Dalam hal ini hari Jumat sore atau kapan saja setelah 01:00:
Membuka
xcodeproj
bukannyaxcworkspace
akan menyebabkan kesalahan seperti ini ...sumber
Pastikan bahwa penamaan konfigurasi Anda di sub proyek cocok dengan yang ada di proyek "induk". Jika penamaan konfigurasi tidak sama persis (peka huruf besar kecil), Xcode akan membatalkan proses arsip dan menunjukkan kesalahan "Tidak ada modul seperti itu ..."
Artinya, jika Anda memiliki proyek "induk" dengan konfigurasi bernama "AppStore" Anda harus memastikan bahwa semua sub - proyek juga memiliki nama konfigurasi ini.
Lihat screenshot saya yang terlampir.
sumber
Debug
danDistribution
dan proyek induknya sedang berusaha membangun untukRelease
. Solusi adalah membuat salinanDistribution
dalam proyek anak dan mengganti nama salinan ituRelease
.Saya tidak yakin mengapa jawaban Martin R dalam komentar untuk pertanyaan itu sangat diabaikan:
Pastikan Anda mencoba melompati impor kerangka kerja karena sudah ditambahkan dengan header penghubung .
Semoga ini membantu
sumber
Saya memiliki masalah yang sama menggunakan Cocoapods dan Swift . Saya tidak melihat baris berikut di Podfile:
Jadi, yang harus saya lakukan adalah mengubahnya menjadi:
... aaand berhasil :)
sumber
Silakan bandingkan tangkapan layar ini dengan pengaturan bangunan Anda. Mungkin ini bekerja. Pergi ke jalur pencarian kerangka kerja:
sumber
Saya juga mengalami masalah ini. Cara memperbaikinya bagi saya adalah bahwa skema Arsip antara kedua proyek tidak cocok. Saya memiliki xcworkspace dengan proyek kerangka kerja dan proyek aplikasi. Masalahnya adalah bahwa dalam skema Arsip untuk aplikasi saya, saya menggunakan Konfigurasi Bangun yang berbeda dari kerangka yang digunakan untuk skema Arsip itu. Saya mengatur Konfigurasi Konfigurasi untuk Dirilis, dan itu memperbaiki masalah.
sumber
Langkah-langkah berikut ini berhasil untuk saya.
"pod update"
di terminal.xcworkspace
dan bangun kembali.sumber
pod install
berhasilDalam kasus saya, setelah banyak upaya untuk mencari tahu apa yang saya lakukan salah dengan mengimpor kerangka kerja saya akhirnya menemukan bahwa kerangka itu sendiri masalahnya. Jika Anda tidak mendapatkan kerangka kerja dari sumber tepercaya, Anda harus memeriksa kerangka tersebut dan memastikan bahwa kerangka itu berisi folder Modul dengan file module.modulemap di dalamnya. Jika module.modulemap tidak ada, Anda akan mendapatkan kesalahan "Tidak ada modul 'MyFramework'".
Jika folder Modul tidak ada folder "MyFramework.swiftmodule" maka kerangka akan ditemukan tetapi Xcode tidak akan tahu tentang isinya sehingga Anda akan mendapatkan kesalahan yang berbeda.
sumber
Dengan asumsi Framework benar-benar ada dan ada di path, dll ... hapus direktori ~ / Library / Developer / Xcode / DerivedData / ModuleCache (dan bersihkan proyek dan hapus data turunan spesifik proyek untuk ukuran yang baik).
Ketika Anda melakukan pembersihan standar, direktori ModuleCache tidak dapat dibangun kembali.
sumber
Yang bekerja untuk saya adalah ini solusi untuk pertanyaan lain. Menutup Xcode dan membuka kembali proyek sebagai ruang kerja.
Buka folder proyek Anda dan buka
.xcodeworkspace
file.Setelah Anda membuka ruang kerja (bukan proyek), Pod akan muncul sebagai proyek tingkat atas di Project Navigator.
sumber
Pastikan, bahwa
Find implicit Dependencies
dalam opsi Bangun di Skema aktif!sumber
Saya juga mengalami kesalahan yang sama beberapa hari yang lalu. Inilah cara saya mengatasi masalah:
Kesalahannya adalah "modul tidak ditemukan"
Pergi ke Pengaturan Bangun Proyek:
Buat file header bridging baru: mis. TestProject-Bridging-Header.h dan letakkan di bawah Swift Compiler → Objective-C Generated Interface Header Name (ref, lihat gambar di atas)
Itu saja.
sumber
Oke, bagaimana masalah yang sama diselesaikan bagi saya adalah mengatur lokasi data turunan relatif ke direktori ruang kerja daripada menjaganya agar tetap default. Buka preferensi dalam xcode. Buka tab lokasi di preferensi dan atur Data yang diperoleh ke Relatif. Semoga ini bisa membantu.
sumber
Saya mendapatkan kesalahan yang sama untuk
Tetapi kemudian saya menyadari bahwa saya tidak menambahkan pod ke bagian target utama tetapi hanya menambah target Test dan TestUI di Podfile.
Dengan perintah itu
untuk proyek cepat xcode, Podfile berikut dihasilkan
Jadi, perlu memastikan bahwa seseorang menambahkan pod ke placeholder yang sesuai.
sumber
Jika Anda membangun platform seperti tvOS, pastikan Anda memiliki simulator Apple TV (yaitu pencocokan).
Membangun aplikasi tvOS dengan simulator iOS yang dipilih memberi saya kesalahan ini. Menghabiskan bagian yang lebih baik dari satu jam mencari segala macam masalah pembangunan ... doh.
sumber
Dalam kasus saya aplikasi IPHONEOS_DEPLOYMENT_TARGET diatur ke 9.3 sedangkan dalam kerangka kerja saya yang baru dibuat itu diatur ke 10.2
Penyelesai dependensi implisit mengabaikan kerangka kerja baru saya karena persyaratan platform target lebih tinggi daripada persyaratan aplikasi.
Setelah menyesuaikan kerangka kerja Target Penempatan iOS agar sesuai dengan target penempatan aplikasi saya, kerangka kerja berhasil dikompilasi dan ditautkan.
sumber
Saya mendapatkan kesalahan yang sama karena saya menambahkan beberapa framework menggunakan
Cocoapods
. Jika kami menggunakan Pods di proyek kami, kami harus menggunakannyaxcodeworkspace
sebagai gantinyaxcodeproject
. Untuk menjalankan proyek melalui xcodebuild, saya menambahkan-workspace <workspacename>
parameter dalamxcodebuild
perintah dan berfungsi dengan baik.sumber
Saya menemukan bahwa
Import Paths
di dalamBuild Settings
itu salah untuk modul custom (MySQL). Setelah menunjuk ke arah yang benar, pesan itu hilang.sumber
find
jika Anda tidak mengetahuinya.Saya memperbaiki ini dengan
Sasaran -> Umum -> Kerangka kerja tertaut dan perpustakaan
Tambahkan kerangka kerja yang seharusnya ada di bagian atas
Workspace
folder. Nyeri di pantat.sumber
Saya baru saja menghapus cocoapod saya. Kemudian, saya melakukan instal pod untuk menghapusnya. Kemudian, saya baru saja menambahkannya kembali ke podfile saya dan menginstalnya kembali. Itu membuatnya bekerja. Tidak yakin kenapa.
sumber
Saya sudah menginstal pod. Build berfungsi tanpa masalah ketika saya membuat aplikasi di perangkat saya, tetapi arsip tidak berfungsi. Saya hanya menjalankan:
tidak ada pod baru yang dipasang, hanya file .xcodeproj yang dibuat ulang dan arsip mulai berfungsi
sumber
Dalam Xcode 10.1 solusi bagi saya adalah mengubah sistem build pada Workspace Settings di menu File. Secara default diatur ke Sistem Build Baru , mengubahnya ke Sistem Build Legacy dan yang melakukan trik.
sumber
Ada beberapa kesalahan konfigurasi yang berpotensi timbulnya masalah,
.xcworkspace
tetapi tidak.xcodeproj
. Pastikan juga Anda telah membangunSocial
terlebih dahulu sebelum membangunTriviaApp
.TriviaApp
, target penyebaran diatur ke9.0
,Social
target penempatan juga perlu diatur9.0
.TriviaApp
) dan kerangka kerja Anda yang digunakan (Social
) memiliki konfigurasi yang sama. yaitu Jika Proyek Anda memiliki tiga konfigurasi,Debug
,Release
,ReleasePremium
dari kerangka Sosial Anda juga perlu memiliki tiga konfigurasiDebug
,Release
,ReleasePremium
. Pastikan juga bahwa konfigurasi arsip diset sama untuk keduanyaTriviaApp
danSocial
. yaitu jikaTriviaApp
skema arsip Anda diatur keReleasePremium
,Social
skema arsip Anda juga perlu diaturReleasePremium
.Social
di setiap.swift
file ketika sudah ditambahkan diBridging-Header.h
.#use_frameworks!
menjadiuse_frameworks!
dari AndaPodfile
. Kadang-kadang menginstal ulang pod berfungsi jikaSocial
memiliki ketergantungan pada pod.sumber
Jika Anda menggunakan Kartago, kerangka kerja dalam pengaturan bangunan biasanya tetap ada
$(PROJECT_DIR)/Carthage/Build/iOS
Jika Anda menjalankan
carthage update --platform ios --no-build
(untuk menghemat waktu) file di dalam folder Build tidak akan diolah kembali, maka modul tidak akan tersedia untuk XCode.Dalam kasus saya, saya telah lari
carthage update --platform ios
, maka masalah saya terpecahkan.sumber
Dalam General => Linked Frameworks and Libraries, saya menambahkan saya
./Pods/Pods.xcodeproj
dan itu berhasilsumber
Bagi saya Build Active Architecture Only disetel ke Ya untuk konfigurasi yang dipilih. Ini berhasil:
Pilih "Pods" dari navigator proyek kiri> Pilih "Bangun Pengaturan"> Bangun Arsitektur Aktif Saja ke Tidak
sumber
Jika semua metode di atas tidak bekerja untuk Anda seperti dalam kasus saya. Tidak ada masalah di hari sebelumnya tetapi di pagi berikutnya saya menghadapi kesalahan yang sama. Saya baru saja menghapus kerangka kerja dengan menghapus referensi dan menambahkannya lagi. Saya tahu ini mungkin terdengar konyol, tetapi voila berhasil.
sumber
Saya memiliki masalah yang sama dengan memuat FacebookSDK, saya menambahkan ~ / Documents / FacebookSDK (cari di mana kerangka kerja Anda) ke jalur pencarian Kerangka dalam pengaturan Build dan setelah itu saya dapat mengimpor modul FBSDKShareKit
sumber
Untuk apa nilainya (saya baru menggunakan Xcode 7.2 / Swift 2), tapi saya perhatikan bahwa hanya memiliki file .swift dari perpustakaan di direktori proyek secara otomatis memberi Anda akses ke sana dan tidak perlu menggunakan pernyataan.
Contoh: Saya menggunakan SwiftyJSON dan hanya memiliki file SwiftyJSON.swift dalam proyek itu yang saya butuhkan. The
using
Pernyataan itu benar-benar memberikan saya error 'tidak ada modul seperti' dan mengambil itu diselesaikan itu, dan bekerja dengan baik.sumber