Saya punya proyek iOS menggunakan CocoaPods. Semuanya berjalan lancar sampai pengembang lain mulai bekerja pada proyek yang sama. Dia membuat beberapa perubahan (hanya untuk kode sejauh yang saya tahu) dan membuat cabang baru di repo. Saya telah memeriksa cabangnya dan mencoba membangunnya, tetapi saya mendapatkan kesalahan: File ASLogger / ASLogger.h tidak ditemukan.
Bahkan jika saya menghapus seluruh proyek dan membuat salinan baru dan menggunakan 'pods install.' kegagalan build masih ada. Apakah Anda tahu di mana masalahnya? Jika Anda memerlukan info lebih lanjut, tanyakan saja.
Jawaban:
Memperbarui
Pastikan Anda
Podfile
menyertakanlink_with
pada target kehilangan file konfigurasi. Cocoapods hanya menetapkan target pertama secara default jika tidak. misalnya------ Akhiri Pembaruan
Catatan: Harap perhatikan bahwa Anda harus melihat Konfigurasi Project-> Info-> untuk langkah-langkah di bawah ini.
Saya memiliki gejala yang sama dan menemukan bahwa
pods.xcconfig
file tersebut tidak termasuk dalam spesifik yangtarget
saya coba buat. Beberapa solusi lain yang disarankan bekerja untuk saya, tetapi yang ini tampaknya mengatasi sebagian dari masalah mendasar.Solusi sederhana adalah mengubah set file konfigurasi untuk target yang tidak memiliki satu set.
sumber
link_with
untuk menentukan target saya yang lain berhasil untuk saya. Terimakasih banyak. Saya hanya menghabiskan beberapa jam untuk ini.link_with
tidak didukung dalam Cocoapods 1.0 atau lebih tinggi.Memperbarui
Saya telah memperbarui ini sejak jawaban asli saya, yang mendapat downvote, jadi saya harap ini membantu. Dan jika ya, mudah-mudahan itu akan mendapatkan suara saya kembali.
Jika tajuk tidak diimpor, Anda mungkin memiliki konflik di
HEADER_SEARCH_PATHS
. Coba dan tambahkan$(inherited)
ke jalur pencarian tajuk di Pengaturan Bangun Anda untuk memastikan bahwa itu menarik semua jalur pencarian yang termasuk dalam file .xcconfig dari CocoaPods Anda.Ini akan membantu dengan konflik apa pun dan mendapatkan sumber Anda diimpor dengan benar.
sumber
1. Periksa
2. Periksa gaya impor (TITIK KUNCI), jika Anda
podfile
telah menetapkanuse_frameworks!
Di Anda
File-Bridging-Header.h
, formatter harus seperti ini#import "MBProgressHUD.h"
lain harus di bawah
#import <MBProgressHUD.h>
3. Itu pasti berhasil! percayalah kepadaku
sumber
File header, Anda akan menjadi kematian saya ...
Akhirnya berhasil dengan menambahkan (termasuk kutipan)
ke entri Jalur Pencarian Header Pengguna, dan memeriksa 'rekursif'.
sumber
$(inherited)
(tidak berfungsi) tetapi menambahkan ini berfungsi untuk saya.Saya menemukan
${PODS_HEADERS_SEARCH_PATHS}
ada yang hilang dan tidak didefinisikan dalam mengembangkan git saya, Jadi saya menambahkan"$(SRCROOT)/Pods/Headers/"
untuk Header Search Paths dengan rekursifItu baik untuk saya
sumber
$(SRCROOT)/Pods/Headers
Kedua jawaban lain tidak membantu di sini. Saya menemukan 2 masalah lain yang mungkin memperbaikinya:
Project-> Info-> Konfigurasi dalam proyek Xcode (proyek Anda) harus diatur ke 'Pods' untuk Debug, Release (dan apa yang Anda miliki). Lihat "Header tidak ditemukan - jalur pencarian tidak termasuk"
Mungkin Anda harus menautkan target dengan perintah link_with. Lihat "Tidak dapat menemukan header di proyek Perpustakaan Statis"
EDIT Anda dapat memeriksa symlink dengan cara ini: membuat file teks bernama 'centang' tanpa ekstensi. salin baris ini ke dalamnya:
Lalu pergi ke terminal, ubah ke folder tempat file cek Anda berada dan ketik
sumber
Inilah yang bekerja untuk saya:
Buka tab Target> "Build Settings" dan temukan pengaturan "Path Pencarian Header Pengguna".
Setel ini menjadi "$ (BUILT_PRODUCTS_DIR)" dan centang kotak "Recursive".
Sekarang target yang dibangun akan mencari direktori build bersama workspace untuk menemukan file header yang dapat ditautkan.
====
MEMPERBARUI
Saya memiliki masalah yang serupa (walaupun sedikit berbeda) baru-baru ini. Ternyata Xcode tidak dapat menemukan Pods karena saya telah membuka
.xcodeproj
file daripada.xcworkspace
file. Mungkin bisa membantu orang lain di masa depan.sumber
pod install
, dan membuka kembali.Jika tidak ada di atas yang berfungsi untuk Anda dan Anda menemukan kesalahan ini karena Anda baru saja beralih ke
use_frameworks!
Podfile Anda, baca terus:Saya mencoba semua solusi di atas dan lebih banyak lagi sebelum mengetahui bahwa ini bukan tentang jalur header pencarian sama sekali dalam kasus khusus saya; itu saat Anda beralih ke
use_frameworks!
dalam Podfile Anda, Anda tidak perlu lagi menyertakan kerangka kerja di header bridging Anda, dan sebenarnya Xcode akan melempar kesalahan "tidak dapat menemukan header" yang sangat tidak membantu.Yang perlu Anda lakukan adalah menghapus semua impor dari file header bridging Anda, dan alih-alih gunakan Swift
import Module
di file Swift individual Anda sesuai kebutuhan, sama seperti yang Anda lakukan untuk kerangka kerja Swift.DAN jika Anda menggunakan salah satu header kerangka kerja di kelas Obj-C Anda (dalam kasus saya, kami memiliki kelas kenyamanan yang menggunakan FBSDK), Anda perlu mengubahnya dari impor lokal ke global (ini berarti berubah
#import "Module.h"
menjadi#import <Module/Module.h>
, yang seharusnya melengkapi secara otomatis untuk Anda ketika Anda mulai mengetik nama kerangka kerja. Dalam kasus saya itu<AFNetworking/AFHTTPRequestOperationManager.h>
).Sunting: Saya telah belajar bahwa melakukan
@import Module
penggunaan menggunakan file payung yang bahkan lebih aman.sumber
Apakah Anda mencoba mengimpor gaya Cocoapods?
Info di situs tidak benar-benar jelas, saya mengajukan permintaan tarik:
https://github.com/CocoaPods/cocoapods.org/pull/34
Pembaruan: Mereka menarik permintaan saya :)
sumber
The wiki memberikan saran tentang cara untuk memecahkan masalah ini:
sumber
$(PROJECT_DIR)/Pods/Headers/Public/xxx/ios/xxx.h
, ada tambahanios
folder ...Saya adalah satu-satunya pengembang dalam tim yang mengalami masalah yang sama, ini bekerja dengan baik untuk semua orang sehingga saya menyadari itu harus menjadi lingkungan saya. Saya mencoba
git clone
satu proyek yang sama di direktori lain dan dikompilasi dengan sempurna, kemudian saya menyadari itu harus menjadi caching Xcode untuk jalur proyek saya di suatu tempat, bahwa "suatu tempat" adalah folder DerivedData, hapus saja dan lakukan pembangunan bersih dari Anda proyek, itu berhasil untuk saya.Anda bisa mendapatkan path dan bahkan membuka folder di finder dengan masuk ke:
Xcode -> Preferensi -> Lokasi -> ** DerivedData
sumber
Saya akan memperbarui hal-hal di bawah ini dalam pengaturan Build saya dan saya tidak mendapatkan kesalahan. Untuk memeriksa ini adalah hal-hal sambil memperbarui cocoapod Anda.
Pengaturan Bangun
Bangun arsitektur saja
Jalur Pencarian
sumber
Jika Anda memiliki kesalahan bangunan setelah " pemasangan pod " atau " pembaruan pod ", mungkin salah satu pod Anda telah dibuat dengan XCode 6.3 saat Anda masih menggunakan versi sebelumnya.
Dalam kasus saya, saya harus memperbarui OSX saya dari mavericks ke Yosemite untuk memiliki Xcode 6.3 dan menyelesaikan masalah
sumber
bagi saya masalahnya adalah nilai flag Other Linker. Untuk beberapa alasan saya tidak memiliki tanda kutip di bendera seperti
-l"xml2"
-l"Pods-MBProgressHUD"
.sumber
Other Linker Flags
saya menemukan dua entri:-|Localytics
dan|-PodsLocalytics
. Saya menghapusnya dan kemudian dapat mengkompilasi.Saya harus mengunduh zip dari git hub dan menyeret file yang hilang ke Finder di jalur yang sesuai di Pod / ...
sumber
Apa yang berhasil bagi saya adalah memilih proyek Pods, menemukan dan memilih kerangka kerja target dengan header yang tidak ada di direktori target proyek Pod dan pengaturan "Build Active Architecture Only" ke "No" di bawah "Arsitektur" di pengaturan build target.
sumber
Saya memiliki masalah yang sama, tetapi solusi di atas tidak dapat bekerja. Saya telah memperbaikinya dengan melakukan ini:
Dan kemudian berhasil.
sumber
Bagi saya, apa yang diperbaiki adalah target penyebaran iOS untuk proyek Pods saya lebih rendah daripada proyek saya sendiri. Setelah saya membuatnya sama dengan proyek saya, ia dapat menemukan file header.
sumber
Saya berada di benih GM Xcode 5.0 dan saya tidak bisa mendapatkan jawaban ini untuk bekerja. Saya mencoba setiap jawaban tunggal pada SO pada beberapa pertanyaan berbeda tentang impor tajuk w / cocoapods.
AKHIRNYA saya menemukan solusi yang berfungsi untuk saya : Saya memutakhirkan ke Xcode 5.0 melalui Mac AppStore (diinstal di atas benih GM) dan sekarang impor header berfungsi seperti yang diharapkan.
Saya juga masih memiliki versi beta Xcode 5 di sistem saya dan saya menghapusnya juga. Mungkin itu adalah kombinasi dari dua hal, tetapi mudah-mudahan ini membantu orang lain.
sumber
Ini adalah jawaban untuk saya, saya memperbarui cocoapods dan saya pikir itu membuat PODS_HEADERS_SEARCH_PATHS pergi. Solusi saya mirip dengan ini tetapi saya menggunakan "$ (PODS_ROOT) / Header" - Andrew Aitken
Terima kasih banyak atas jawaban ini. Saya mengalami kesulitan mencari cara untuk memperbaiki masalah saya. Terima kasih banyak.
sumber
Tidak ada jawaban yang membantu saya (saya memiliki pod saya ditautkan dengan semua target, membangun konfigurasi setup dengan benar, koreksi set path pencarian "$ (diwarisi)", dll ...).
Masalah menghilang dengan sendirinya setelah saya memperbarui cocoapods ke versi debug terbaru menggunakan perintah install / update standar:
atau:
(jika sudo digunakan selama instalasi).
Itu pasti bug cocoapods.
sumber
Satu solusi sederhana adalah: 1. Hapus folder Pods dan file Podfile.lock. Tapi jangan hapus Podfile 2. Jalankan perintah berikut di folder root proyek Anda:
sumber
Berikut alasan lain: Semua jalur tajuk tampak baik-baik saja, tetapi kami masih memiliki kesalahan dalam file yang telah dikompilasi (.pch) yang mencoba membaca tajuk pod
(mis. #import <CocoaLumberjack / CocoaLumberjack.h>).
Melihat output build mentah, saya akhirnya melihat bahwa kesalahan itu melanggar Target Extension OS Watch kami, bukan target utama kami sedang membangun, karena kami juga mengimpor file header .pch yang telah dikompilasi ke target Watch OS, dan gagal sana. Pastikan pengaturan target Watch OS Anda yang menyertainya jangan mencoba mengimpor file .pch (terutama jika Anda menyetel impor itu dari pengaturan target master, seperti yang saya lakukan!)
sumber
Saya telah menemukan bahwa memasukkan pustaka sebagai pemasangan pod secara langsung membantu pustaka dinamis. Misalnya, untuk Firebase:
Atau untuk ASLogger:
Mengubah atau meng
HEADER_SEARCH_PATHS
- hardcoding tidak membantu saya. Jika kesalahannya berulang, tidak perlu untukrm -rf node_modules
menghapus file pod dll, saya menemukan itu berguna untuk menghapus cache.Untuk reaksi-asli, saya lari
Untuk Xcode saya menghapus folder di
~/Library/Developer/Xcode/DerivedData
sumber
Saya pikir solusi terbaik adalah pergi ke
Build settings -> Search Path -> User Header Search Paths
, cari jalur perpustakaan Anda dan lalui di Finder. Pastikan semua jalur ada termasuk jalur impor Anda.Bagi saya jalur saya lebih pendek daripada di tutorial. Dalam tutorial itu seperti
#import <SDK/path/to/sdk/File.h>
, tapi ternyata itu adil#import <SDK/File.h>
sumber
Saya punya solusi lain yang berhasil di sini,
sumber
Cobalah mengomentari baris ini untuk target Anda
Atau Anda dapat merujuk ke jawaban saya lainnya yang ditambahkan target pengujian unit ke xcode - gagal mengimpor header bridging tidak akan hilang
sumber
Saya memecahkan masalah ini untuk Xcode 8.2.1 dengan drag and drop framework yang ingin saya gunakan.
sumber