Saya memiliki proyek Swift yang saya coba impor kerangka kerja berbasis ObjC. Kerangka kerja terletak di direktori di bawah jalur proyek dan direferensikan oleh proyek di Xcode. Ini juga ditambahkan ke "Link Binary with Libraries" di halaman 'Build Phases' proyek.
Namun, untuk beberapa alasan, sepertinya saya tidak dapat menyertakan kerangka kerja dalam file Bridging-Header. Saya mendapatkan kesalahan berikut:
BridgingHeader.h:5:9: error: 'Parse/Parse.h' file not found
#import <Parse/Parse.h>
^
<unknown>:0: error: failed to import bridging header 'BridgingHeader.h'
Hal-hal yang telah saya periksa:
- "Instal Header Kompatibilitas Objective-C" diatur ke "YA".
- Jalur Pencarian Header menyertakan jalur ke kerangka kerja.
Saya yakin saya melewatkan sesuatu, jadi jika ada yang punya petunjuk, itu bagus.
swift
xcode
bridging-header
Dia Kharrat
sumber
sumber
Header Search Paths
, dalam hal ini pertanyaan membantu: DJawaban:
Menemukan solusi:
SWIFT_OBJC_BRIDGING_HEADER
) harus disetel pada level Target, dan BUKAN level Project. Pastikan untuk menghapus nilai pengaturan di tingkat Proyek.(bagi saya, ini tampak seperti bug Xcode, karena saya tidak tahu mengapa ini memperbaikinya).
sumber
Saya memiliki masalah yang sama. Saya mengubah semua impor saya dari
#import "HMSegmentedControl.h"
menjadi#import <HMSegmentedControl/HMSegmentedControl.h>
misalnya.sumber
Saya harus menambahkan
lib
direktori saya di User Header Search Paths:Dalam kasus saya,
lib
direktori berisi.a
file -library dan beberapa file header. Ini termasuk dalam file header penghubung. Namun, penyusun cepat tidak akan menemukannya. Hanya ketika saya menambahkan${PROJECT_DIR}/lib
ke Jalur Pencarian Header Pengguna itu membangun target pengujian.(Saya menggunakan Xcode 6.2 di Mavericks 10.9.5)
sumber
Kami menemukan pesan kesalahan yang sama, dengan penyebab yang sama sekali berbeda.
Mempersiapkan:
Saat kami menambahkan kasus uji cepat kedua, setelah pembersihan (atau pada mesin rekan satu tim), kami melihat kesalahan ini saat membangun target pengujian unit.
Itu diperbaiki dengan menambahkan kelas Obj-C tiruan ke target pengujian unit.
sumber
Jika menggunakan cocoapods, coba instal ulang pod dengan menjalankan perintah berikut.
sumber
pod install
tampaknya diperlukan untuk konfigurasi baru yang ditambahkan ...Ini entah bagaimana melakukan trik untuk saya:
sumber
Kesalahan ini muncul saat menginstal dengan Cocoapods pustaka CocoaImageHashing. Masalahnya adalah jalur pencarian salah. Jadi pada level Target, di Build Settings -> Search Paths -> Header Search Paths, jalurnya sesuai dengan folder yang tidak ada, misalnya "$ {PODS_ROOT} / Headers / Public / CocoaImageHashing", ketika struktur folder Headers / Public / Tidak ada. Saya menambahkan jalur $ {PODS_ROOT} / CocoaImageHashing dan kesalahannya menghilang.
sumber
Agak aneh, tapi saya rasa Anda harus menambahkan sumber daya ke fase "Salin Sumber Daya Bundel" dari target pengujian Anda untuk membuatnya memuat semua header dari target aplikasi utama Anda. Dalam kasus saya, saya menambahkan
main.storyboard
dan menangani kesalahan tersebut.sumber
Ini terjadi pada saya setelah menambahkan / mengganti nama konfigurasi saat ini dan itu masuk akal.
Setiap konfigurasi menggunakan Set Konfigurasi yang dihasilkan oleh cocoapods sehingga hal-hal ini harus cocok.
Jadi, jika Anda menambahkan / mengganti nama konfigurasi, ini perlu menggunakan set konfigurasi yang benar, dan untuk menjalankan itu
pod install
akan melakukannya.sumber
Jika membantu siapa pun.
Dalam kasus saya, file obj-c saya ditambahkan memiliki folder referensi (folder biru di xcode) dan header tidak dapat menemukannya. Baru saja menambahkan file, bukan folder, dari finder ke xcode dan diselesaikan.
sumber
Saya memiliki masalah yang sama. Bagi saya, alasannya adalah saya menggunakan header penghubung yang sama untuk Aplikasi saya dan Ekstensi Hari Ini. Ekstensi My Today tidak menyertakan Parse, tetapi karena itu didefinisikan di header-bridging, ia mencoba mencarinya. Saya membuat header penghubung baru untuk Ekstensi Hari Ini dan kesalahannya hilang.
sumber
Kerangka saya bekerja sebelumnya dan tiba-tiba berhenti bekerja, dan tidak ada jawaban yang berhasil untuk saya. Saya menghapus kerangka kerja di Build Phases> Link Binary With Libraries, dan menambahkannya kembali. Mulai bekerja lagi.
sumber
Saya memiliki masalah dan memperbaikinya setelah menghabiskan 2 jam untuk menemukannya. Lingkungan saya seperti di bawah ini:
cocoapod 0.39.0
cepat 2.x
XCode 7.3.1
Langkah:
sumber
Saya baru saja menduplikasi skema yang ada dan menambahkan konfigurasi lain ke proyek. Saya harus menambahkan konfigurasi dengan nama yang sama ke proyek kerangka kerja agar juga membangun di
DerivedData/($AppName)/Build/Products/($CONFIGURATION_NAME)
folder yang sama . Jika tidak, file .framework tidak akan dibuat dan oleh karena itu tidak dapat diimpor.sumber
Saya mengalami masalah yang sama hari ini ketika mencoba menggunakan pod yang ditulis dalam Objective-C di proyek Swift saya, tidak ada solusi di atas yang tampaknya berhasil.
Di podfile yang saya
use_frameworks!
tulis. Mengomentari baris ini dan kemudian menjalankanpod install
lagi memecahkan masalah ini untuk saya dan kesalahan itu hilang.sumber
(Diperbarui per 27 Mei 2017)
Xcode 8. Proyek Swift - mengimpor Objective C.
Hal yang perlu diketahui:
sumber
Saya memiliki masalah serupa dan hanya satu solusi yang berhasil untuk saya. Saya mencoba semua yang disarankan, dan saya tahu bahwa saya mengatur header bridging saya dengan baik, karena saya memiliki beberapa lib yang berfungsi.
Ketika saya menyalin perpustakaan (seret dan lepas) ke dalam proyek, tanpa Cocoapods, hanya setelah itu saya dapat mengimpor header tanpa kesalahan.
Saya menggunakan perpustakaan facebook / Shimmer.
sumber
Saya memiliki masalah serupa dengan pod. Pada dasarnya mencoba menjalankan tes UI saya, Xcode mengeluhkan pod yang hilang. Solusi untuk ini jauh lebih sederhana daripada yang dijelaskan di atas:
Kerja!
Saya menemukannya di utas: https://github.com/CocoaPods/CocoaPods/issues/2695
Kedengarannya seperti bug untuk buah kakao, tetapi saya dapat melihat alasan mengapa hal ini menjadi kasus yang rumit.
sumber
Dalam kasus saya, saya hanya harus keluar dari simulator ...
sumber
Bersihkan proyek, Bersihkan folder build, Mulai Ulang Xcode. saya hanya menghapus jalur di proyek goto> Pengaturan Bangun> Cari kata kunci. Swift Compiler - General -> Objective-C Bridging header bekerja untuk saya.
sumber
Agustus 2019
Dalam kasus saya, saya ingin menggunakan protokol Swift dalam file header Objective-C yang berasal dari target yang sama dan untuk ini saya perlu menggunakan deklarasi maju dari protokol Swift untuk mereferensikannya di antarmuka Objective-C. Hal yang sama harus valid untuk menggunakan kelas Swift di file header Objective-C. Untuk menggunakan deklarasi maju, lihat contoh berikut dari dokumen di Sertakan Kelas Swift di Header Objective-C Menggunakan Deklarasi Teruskan :
sumber