ld: framework tidak ditemukan Pods

234

Saya mencoba menambahkan kerangka kerja untuk proyek iOS saya tetapi ketika saya membangun saya selalu mendapat pesan yang sama:

ld: framework tidak ditemukan Pods

clang: error: perintah linker gagal dengan kode keluar 1 (gunakan -v untuk melihat doa)

Saya mencoba untuk menghapus Podsdirektori saya dan kemudian menjalankan pod install saya membuka .xcworkspaceseperti itu tertulis di log pada instalasi pod, saya membersihkan proyek pada xcode dan kemudian mencoba untuk membangun tetapi tidak berfungsi ..

Podfile saya terlihat seperti ini:

xcodeproj '/Users/guillaume/project/Mobile/iOS/FoodPin/FoodPin.xcodeproj'
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
use_frameworks!
pod 'SwiftHTTP', '~> 0.9.2'

Versi xcode saya adalah 6.3.1

Terima kasih,

Kaëris
sumber
1
Apakah Anda memeriksa yang libpods.aada di "Kerangka Kerja Tertaut dan Pustaka" target Anda? Dan dalam Fase Bangun Anda juga?
BoilingLime
Apakah Anda berhasil menyelesaikan ini? Saya mengalami kesalahan yang sama
Christopher Francisco
@ChristopherFrancisco Saya menyelesaikannya, periksa jawaban saya.
Arbitur
1
Ini Cara Jawaban [1] memecahkan masalah saya! Semoga ini bisa membantu [1]: stackoverflow.com/a/31161871/1557663
Mário Carvalho
@ MárioCarvalho Itu hanya versi ramah-lama untuk jawaban saya x)
Arbitur

Jawaban:

524

Di Project Navigatordalam folder Podssaya punya Pods.frameworkdi sana yang berwarna merah. Itu juga hadir di Linked Frameworks and Libraries. Saya menghapus referensi dan kesalahan hilang.

TL; DR

Hapus Pods.frameworkdi:

  • Nama folder Pods
  • Linked Frameworks and Libraries
Arbitur
sumber
5
Saya pikir saya berakhir dengan masalah ini setelah menambahkan use_frameworks! ke Podfile saya dan kemudian berkomentar. Menghapus referensi ke Pods.framework memperbaiki masalah ini.
StephenT
2
@StephenT Ya saya percaya thats apa yang saya lakukan juga, penggunaan pertama use_frameworks!dan kemudian tanpa dan mungkin Pods.frameworktidak dihapus dengan benar selama pod install. Mungkin ada bug di Cocoapods.
Arbitur
Ini adalah jawaban yang bagus, tidak memengaruhi contoh aplikasi, itu masih berjalan dengan baik
Gabriel Goncalves
3
Jika ini tidak berhasil, coba gunakan cocoapods-deintegrate. Itu baru saja memecahkan masalah ini bagi saya.
nickdnk
2
Setelah menjalankan instal pod, saya entah bagaimana berakhir dengan file framework "Pods_ <Project Name>" di folder Pods saya. Menghapus file ini, membersihkan, dan membangun kembali menghapus kesalahan ini untuk saya.
Caleb Faruki
209

Ini biasanya disebabkan oleh membuka file .xcodeproj alih-alih .xcworkspace.

Ketika Anda menjalankan 'pod install' untuk pertama kalinya, itu akan membuat file .xcworkspace, yang mencakup .xcodeproj dan proyek Pods asli Anda. Anda harus menutup .xcodeproj dan membuka .xcworkspace sebagai gantinya.

Ini adalah masalah umum ketika membuat proyek melalui wizard proyek baru Xcode - Saya sering lupa bahwa saya tidak berada di ruang kerja, yang diperlukan untuk membuat Cocoapods dapat ditautkan dengan benar.

Chris Trevarthen
sumber
Terima kasih! Ini membingungkan saya pada awalnya
Phi Nguyen
6
Penjelasan Anda jauh lebih baik daripada yang saya lihat di tempat lain. Saya tidak menyadari apa yang sedang terjadi. Terima kasih!
Michael Yaworski
Ketika dilakukan bersamaan dengan jawaban Arbitur, ini menyelesaikan masalah. Terima kasih!
user1577390
Ini persis masalah saya. Terima kasih!
Antonio Papalillo
tidak ada file .xcworkspace di dalam proyek saya. apa yang harus dilakukan
Kartiikeya
126

Xcode 9, 10, 11, 11.5

instal https://github.com/CocoaPods/cocoapods-deintegrate

pod deintegrate

kemudian

pod install
Ted
sumber
1
Bekerja seperti pesona! Terima kasih. Ini menghilangkan referensi lama ke target yang diubah namanya yang menyebabkan kesalahan ini.
Alex Obenauer
1
Kamu adalah pahlawanku! ;)
Swissdude
1
Wow, kamu menyelamatkan hariku! macet dari kemarin dan akhirnya diselesaikan dengan Xcode 10. Terima kasih!
Purushottam Padhya
1
Ini harus menjadi jawaban yang benar, ini adalah pendekatan yang paling aman. Jangan lakukan langkah-langkah manual saat menggunakan hal-hal otomatis seperti CocoaPods, kecuali itu adalah bug yang dikenal yang tidak dapat diperbaiki.
Gobe
1
ini membantu saya, Bung luar biasa!
Sruit A.Suk
51

Saya menghapus kesalahan ini dengan menghapus .frameworkfile merah yang terletak di folder Frameworksdi folder project navigator. Saya pikir ini juga secara otomatis menghapus entri merah yang sesuai di Linked Frameworks and Librariesbagian Generalpengaturan.

Saya telah membersihkan / menginstal ulang pod untuk memperbaiki masalah lain. Mungkin file dan entri kerangka kerja merah ini hanyalah sisa dari pemasangan pod sebelumnya?

theblang
sumber
Iya! Masalah saya ada di Framework dan Perpustakaan Tertaut dari pengaturan Umum dan sulit ditemukan karena tidak muncul dalam pencarian teks!
Alistair Cooper
Dalam kasus saya, file framework bahkan tidak merah, tetapi hanya berwarna abu-abu. Tetapi menghapusnya tampaknya telah memperbaiki masalah!
Penipu
29

Untuk yang menemukan masalah ini. Saya menggunakan NativeScript dan mendapatkan kesalahan yang sama.

Itu terjadi karena saya membuka file .xcodeproj, tetapi kita harus membuka proyek dengan file .xcworkspace.

calebaire
sumber
27

Ini terjadi pada saya setelah memperbarui Podfile saya dan melakukan pembaruan pod.

Untuk beberapa alasan, saya memiliki file kerangka "Pods_ [ProjectName]" muncul di bawah proyek saya di bawah 'Target'> Umum> Framework dan Perpustakaan Tertaut.

Menghapus ini dan kemudian membersihkan / membangun kembali memperbaiki masalah.

Elliott Davies
sumber
2
Ini terjadi ketika Anda mengganti nama proyek dan perlu menghapus yang lama. +1
Babbz77
Ini berhasil untuk saya. Saya tidak mengubah nama proyek, tetapi menambahkan Swift ke proyek Objective-C yang sudah berjalan lama.
Luffy
24

Saya memiliki masalah serupa dengan

framework not found Pods_OneSignalNotificationServiceExtension

Itu diselesaikan dengan menghapus yang berikut ini. Pergi ke target OneSignalNotificationServiceExtension> Bangun Fase> Tautan Biner dengan Perpustakaan dan hapus Pods_OneSignalNotificationServiceExtension.framework Itu harus kosong di sini. Semoga ini bisa membantu. Bersulang.

Sharukh Mastan
sumber
Ini memperbaiki masalah bagi saya. Situasi khusus saya adalah saya memiliki target iOS MyApp. Kemudian saya perlu membuat target kedua dan memiliki MyAppFirst, target MyAppSecond. Cocoapods mampu membangun apa yang dibutuhkannya (Pods_MyAppFirst, Pods_MyAppSecond) tetapi ia juga mencoba menautkan ke Pods_MyApp yang sudah tidak ada lagi. Saya ingin menunjukkan bahwa dalam proses mencoba untuk memperbaikinya saya membuang file ruang kerja dan folder Pod saya untuk membuatnya kembali dari awal ketika saya melakukan "pod-install" tetapi itu tidak membantu.
xdeleon
@Sharukh Mastan Apakah Anda punya ide bagaimana membuat ini terjadi setelah instalasi pod? Setiap kali saya menginstal pod, ia Pods_OneSignalNotificationServiceExtension.framework kembali menghantui saya dalam kerangka kerja terkait dan pustaka OneSignalNotificationServiceExtensiontarget.
Sethmr
@Sethmr Sedihnya, tidak. Dalam kasus saya, bagaimanapun, itu tidak selalu terjadi setelah a pod install, itu acak.
Sharukh Mastan
Masalah @SharukhMastan saya membuka *.xcodeproj/*.xcworkspaceatas *.xcworkspacedengan VSTS saya .yml skrip otomatisasi. Saya lebih tahu dengan gui, tetapi masih terbiasa dengan persyaratan dalam scripting tanah.
Sethmr
15

Saya mendapatkan kesalahan ini karena saya mengganti nama proyek saya dan mengubah nama proyek dalam file pod juga, tetapi proyek saya merujuk ke nama lama yang tidak ada di sana dan menyebabkan kesalahan ini. Saya menyingkirkan ini dengan

pod deintegrate

diikuti oleh

pod install
osama
sumber
Iya! Saya memiliki masalah yang sama ketika menurunkan versi dari 12.0 ke 9.0. Hal di atas berfungsi setelah saya memodifikasi versi target di Podfile saya agar sesuai dengan apa yang ada di proyek.
Richard Bown
Jawaban yang bagus. Terima kasih.
whdals0
14

Anda harus menghapus proyek Anda beberapa file seperti gambar ini.

Anda harus menghapus pods.framework dan pods menandai file merah

lingyfh
sumber
10

Cukup Hapus .framework Anda dari daftar "Proyek Anda-> Umum-> Framework & Perpustakaan Tertaut".

Ny. Ibrahim
sumber
Itu dia, saya punya dua setelah saya mengganti nama proyek. Terima kasih!
Jimmy
10

Itu terjadi pada saya karena saya mengubah Deployment Targetdi Generaltetapi lupa untuk mengubah Deployment Targetdi Pods > General. Ubah target penempatan

Dary
sumber
Memperbaikinya untuk saya juga, Xcode 11.2 / Cocoapods 1.8.4. Mengiritasi bahwa pesan kesalahan tidak memiliki kemiripan dengan akar penyebab ...
Jonathan Ellis
1
Memperbaikinya untuk saya - tidak tahu bahwa saya perlu mengubah ini di kedua tempat. Terima kasih banyak!
hakazvaka
6

Dalam kasus saya, saya dapat membangunnya di perangkat dan simulator tetapi memiliki kesalahan yang sama saat pengarsipan. Untuk mengatasinya, saya harus

  • menghapus Pods.framework
  • pastikan Pods-<project-name>.frameworksudah tertanam

Anda akan menemukan pengaturan di TARGETS -> Framework dan Perpustakaan Tertaut.

SeanChense
sumber
Bisakah Anda memeriksanya: github.com/CocoaPods/CocoaPods/issues/…
Esqarrouth
4

Langkah 1

Hal pertama yang perlu Anda lakukan adalah menghapus Podfile, Podfile.lock, folder Pods, dan ruang kerja yang dihasilkan.

Langkah 2

Selanjutnya, di .xcodeproj, hapus referensi ke file Pods.xcconfig dan file libPods.a.

Langkah 3

Di dalam tab proyek Bangun Fase, hapus bagian Periksa Pod Manifest.lock (terbuka), bagian Salin Sumber Daya Pods (bawah) dan Sumberdaya Embed Pod (bawah).

Step4

Hapus Pods.framework.

Satu-satunya hal yang mungkin ingin Anda lakukan adalah memasukkan beberapa perpustakaan yang Anda gunakan sebelumnya. Anda dapat melakukan ini dengan hanya menggerakkan folder apa pun yang ada di folder pod ke dalam proyek Anda (saya lebih suka memasukkannya ke folder File Pendukung saya).

Ini berhasil untuk saya.

AG
sumber
Langkah 3 berhasil dalam kasus saya, langkah 3 -> cmd + alt + shift + k.
ViruMax
4

Anda kemungkinan besar mencoba membuat pod bekerja di proyek Anda, bukan? Satu-satunya cara untuk melakukannya adalah dengan membuat proyek terpisah yang menggunakan CocoaPods.

Tutup semua ruang kerja yang Anda gunakan.

Selanjutnya, pastikan Anda sudah menyiapkan Podfile Anda sepenuhnya.

Di baris perintah, di mana pun file Anda, ketikkan perintah:

pod deintegrate

Kemudian, instal agian pod Anda.

pod install or pod update

Sekarang Anda dapat menggunakan ruang kerja baru proyek Anda untuk berkembang. Cari file bernama .workspace. Gunakan file itu!

Ini adalah panduan untuk menggunakan CocoaPods

Emmanuel Mbaba
sumber
Hanya ini yang bekerja untuk saya setelah perjuangan 2 hari dengan kesalahan.
Mitesh Dobareeya
3

Menggunakan Xcode 8.3 jawaban yang diterima tidak bekerja untuk saya. Saya telah mencoba banyak solusi lain tetapi jawaban @Elliott Davies adalah apa yang diperbaiki untuk saya. Saya menambahkan tangkapan layar untuk kejelasan. Untuk beberapa alasan, Xcode mencoba menautkan pengaturan podfile sebelumnya yang tidak ada lagi. Yang harus saya lakukan adalah menghapus referensi tambahan dan semuanya bekerja.Cuplikan layar Kerangka dan Perpustakaan Tertaut Xcode

jbryant
sumber
3

Masalah ini membuatku gila karena tiba-tiba terjadi tanpa melakukan perubahan pada proyek. Saya sudah mencoba semua solusi yang disarankan di utas ini (dan yang terkait lainnya) dan tidak ada yang memecahkan masalah.

Satu-satunya hal yang berbeda dari proyek saya yang lain (yang dikompilasi dengan baik), adalah bahwa nama proyek ini mengandung aksen (aksen Prancis, "é"). Saya telah mengganti nama proyek dan semua file terkait, dan akhirnya berhasil!

Mungkin ini terkait dengan pemutakhiran ke Xcode 10, karena proyek ini bekerja dengan baik sebelum ...

EDIT: tampaknya juga gagal saat menggunakan proyek dengan -nama proyek ...

AnthoPak
sumber
1
Anda menyelamatkan hidup saya
Florian Mac Langlade
1
Menyelamatkan hidup saya juga!
Dan
Ada solusi selain mengganti nama proyek?
anestis
@ anestis saya tidak berpikir begitu. Untuk mengganti nama proyek dengan cepat, saya menyarankan perintah dari jawaban ini stackoverflow.com/a/48004237/4894980 yang melakukan pekerjaan yang sangat hebat!
AnthoPak
3

Dalam kasus saya, setelah membandingkan perbedaan antara cabang yang saya tahu dibangun dengan benar, saya perhatikan baris ini di Podfile saya:

platform :ios, '11.0'

Secara tidak sengaja saya telah meningkatkan versi target saya dari 10 menjadi 11 sementara target saya di Xcode tetap diatur ke 10. Kembali ke 10 memecahkan masalah saya untuk saya.

Pastikan target Anda versi iOS diatur dengan benar.

joels
sumber
Kamu menyelamatkan hariku !! Terima kasih
Mayank Patel
3

Ini adalah cara saya memperbaiki masalah saya. dan sekarang berfungsi ketika saya menulis jawaban ini:

Pertama, saya mencoba semua cara yang paling memperbaiki di atas,

menghapus Pods_xxx.framework dari pustaka tautan dan kerangka kerja di fase build target sangat membantu, dan masalah ini akan hilang, tetapi masalah yang akan datang adalah saya tidak dapat mengimpor Pods.framework lagi.

Dan kemudian, saya mencoba untuk menginstal ulang konfigurasi xcworkspace, sehingga saya bisa mencari tahu masalah sebenarnya. jadi saya lari

pod deintergate

dan kemudian pasang kembali pod saya:

pod install

ini bekerja dengan sempurna, tetapi masalahnya masih ada di sana, tetapi saya mencari tahu masalah sebenarnya adalah Pods_xxx.framworks tidak dapat dikompilasi berhasil oleh cocoapods build script. Saya pikir ini adalah cara yang benar untuk memperbaiki masalah.

Akhirnya, saya mencoba mengedit skema proyek saya:

Skema pod tidak sedang diedit

dan saya menambahkan skema Pods ke kelola:

masukkan deskripsi gambar di sini

dan buat Pods.framework ini secara terpisah, dan Anda akan menemukan ikon Pods.framework menjadi benar-benar lagi:

masukkan deskripsi gambar di sini

dan saya pikir sekarang Anda telah memperbaiki masalah "framework Anda tidak ditemukan Pods_xxxx.framework" tetapi sebenarnya saya memiliki masalah lain yang datang:

masukkan deskripsi gambar di sini

jadi saya pergi ke pengaturan build, dan mengedit "Framework Search Path"dengan "${inherited}", dan sekarang semua masalah padam, bersorak !!!! :)

masukkan deskripsi gambar di sini

Levine Veblen
sumber
Menambahkan target Pod dan membangunnya sebenarnya menunjukkan apa yang salah dengan pembuatan pod. Dalam kasus kami ini adalah konflik versi cepat. Terima kasih!
green0range
Saya tidak mengikuti semua langkah. Saya baru saja menambahkan ${inherited}jalur itu, lalu melakukannya Product->Clean Build Folder, dan hanya itu, sekarang ia dibangun tanpa hambatan.
Starwave
2

Setelah menghapus dan memperbarui pod saya masih memiliki masalah yang sama.

Saya telah menemukan bahwa pengembang sebelumnya menaruh flag di ' Build Settings -> Other Linker Flags ' dengan nama Framework (dalam kasus saya - gambar 'OGVKit') yang membuat masalah.

Setelah menghapus bendera itu, proyek dibangun dengan benar.

Babac
sumber
Terima kasih banyak! Anda selalu harus mengawasi hal-hal yang berani di Pengaturan Bangun!
Marcio Granzotto
2

Saya mengalami masalah ini karena saya tidak mengatur platform benar.

Jadi di aplikasi macOS saya, saya memiliki platform yang diatur ke:

platform :ios

dari pada

platform :osx
Besi
sumber
1

Saya mengatasi masalah ini dengan memilih proyek yang mengunduh CocoaPodsdan membangunnya, Anda dapat mengklik Kelola Skema sehingga dapat ditampilkan di Run bar. Kemudian Anda dapat membangun kembali proyek Anda. Semoga ini bisa membantu.

vinhsteven
sumber
1

Dalam kasus saya, ada referensi ke perpustakaan yang saya hapus

Target> Membangun Pengaturan> Jalur Pencarian Runpath

Menghapus perpustakaan dari Podfile dan memperbarui itu jelas tidak menghapusnya, jadi saya harus melakukannya secara manual dan sekarang semuanya berfungsi.

Marina Aguilar
sumber
1

Tidak ada jawaban sebelumnya yang menunjukkan akar masalah dalam situasi saya. Jadi saya harap ini bermanfaat bagi orang lain.

Dalam kasus saya, saya akhirnya harus mengedit podfile saya di root proyek saya. Ketika saya pertama kali membuat podfile saya, pustaka statis cepat tidak didukung. Jadi saya telah menggunakan use_frameworks!di podfile saya di bawah masing-masing target saya seperti:

SEBELUM

...
target 'targetName' do
   use_frameworks!
   pod 'podName', '~> 0.2'
end

SETELAH

...
target 'targetName' do
   pod 'podName', '~> 0.2'
end

Saya dihapus use_frameworks!dari podfile saya yang terus menginstal frameworks setiap kali saya menjalankan pod install. Setelah menghapus garis ini, pastikan untuk menjalankanpod install lagi dan menghapus referensi .framework merah dari folder Frameworks Anda di Xcode. (Meskipun punyaku tampil berbeda seperti yang terlampir di bawah ini.)

Gambar Menghapus file .framework yang tidak lagi diperlukan

Anda juga dapat membaca lebih lanjut tentang di use_framework! sini .

the.giologist
sumber
0

Jika Anda membuka file .xcworkspace dan Anda masih mendapatkan kesalahan yang sama:

delete all the contents of Pods directory and from command line write "pod install" to resolve the issue.
Alp Altunel
sumber
0

Hapus folder frameworks yang dibuat setelah pod menginstal atau memperbarui

Xcoder
sumber
0

Hal lain yang memecahkan masalah saya adalah masuk di bawah Target -> Build Settings -> Other flags linker dan hapus "-framework" dan kerangka "nama" Anda.

Itu terjadi ketika saya mencoba untuk menghapus pod.

atacand1920
sumber
0

Saya menyelesaikan ini dengan menyeret .frameworkfile ke Framework dan Perpustakaan Tertaut

Katakanlah saya mengalami masalah ini karena kesalahan FIRAnalyticsConnector not founddan saya hanya menyeret FIRAnalyticsConnector.framworkfile ke Linked Framework dan Libraries dan masalah saya terpecahkan

Sultan Ali
sumber
0

Saya mencoba setiap jawaban di sini dan tidak ada yang berhasil. Saya akhirnya membuatnya bekerja dengan menaikkan target penyebaran dari 10.0 ke 11.0. Saya tidak tahu mengapa itu memperbaikinya, tetapi saya curiga ada hubungannya dengan peningkatan ke Xcode 10.2.1.

Penipu
sumber
0

mungkin Anda tiba-tiba membuka file .xcodprj yang salah dan Anda harus membuka .xcworkspace

amirtutunchi
sumber
Lebih baik memposting ini sebagai komentar.
Masoud Rahimi
0

Silakan periksa file Executable Anda di dalam .Framework like masukkan deskripsi gambar di sini

  1. Nama file yang dapat dieksekusi harus seperti ini tanpa ekstensi apa pun.

  2. Beberapa kerangka kerja menunjukkan seperti ini masukkan deskripsi gambar di sini

  3. Menggunakan Terminal goto. Direktori pekerjaan menggunakan di bawah ini perintah lipo -create FrameworkName-x86_64 FrameworkName-armv7 FrameworkName-armv7s FrameworkName-i386 FrameworkName-arm64 -output FrameworkName

setelah membuat satu file yang dapat dieksekusi hapus file ini masukkan deskripsi gambar di sini

Purnachandar Rao Voleti
sumber