perpustakaan tidak ditemukan untuk -lPods


334

Saya mendapat kesalahan saat mengarsipkan proyek. Ini lingkungan saya.

  • Mac OS Lion
  • Xcode 4.3.1
  • iOS SDK 5.1

Target penyebaran proyek adalah:

IPHONEOS_DEPLOYMENT_TARGET 3.2

Kesalahan menunjukkan:

ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Saya kira Pods adalah CocoaPods yang saya gunakan untuk mengelola dependensi proyek XCode. https://github.com/CocoaPods/CocoaPods

Ini adalah Podfile saya

platform :ios  
dependency 'libPusher', '1.1'

Saya tidak yakin apa artinya kesalahan itu?


Penyebab masalah yang tidak ada jawabannya. periksa jawaban ini di sini: stackoverflow.com/questions/24050012/…
hasan

Jawaban:


611

Apakah Anda membuka ruang kerja (yang dihasilkan oleh CocoaPods) alih-alih xcodeproj?


26
Aku melakukannya. Masalahnya teratasi setelah mengubah arsitektur rilis proyek Pods ke 'armv6 armv7'.
angelokh

10
Aha, di Anda Podfile, tentukan platform seperti ini:platform :ios, :deployment_target => "3.2" . Itu harus mengkonfigurasinya dengan benar saat berikutnya Anda menjalankan pod install.
paduan

248
Agar jelas bagi pemula di luar sana, Anda harus membuka .xcworkspacefile, bukan .xcodeproj. Dengan cara ini selain proyek Anda, Xcode tahu tentang proyek di Pods/direktori dan cara membuatnya libPods.a.
Jonathan Tran

13
Sebagai lanjutan dari komentar @ JonathanTran ... jika Anda memiliki akun .xcodeprojterbuka, Anda harus menutupnya sebelum membuka .xcworkspacefile.
Ross

4
Perhatikan bahwa proyek yang Anda gunakan pods juga harus memiliki arsitektur itu ditetapkan ke armv6 armv7 (jika itu opsi yang Anda gunakan pada arsitektur proyek pod). Jika Anda tidak melakukannya, Anda akan mendapatkan kesalahan yang sama.
Patrick Bassut

173

Saya memisahkan aplikasi dan target pengujian di Podfile dengan menggunakan

target :App do
    
end

target :AppTests do
    
end

Ini menghasilkan dua produk baru libPods-App.a dan libPods-AppTests.a , masing-masing dan mereka membuat produk libPods.a sebelumnya menjadi usang. Saya harus menghapus produk ini dari bagian Link Binary With Libraries dari konfigurasi Build Phases dari kedua target.


3
Ya, ini untuk saya, setelah mencoba selusin hal lain sebelumnya di utas ini. Podfile saya memiliki dua target seperti di atas, dan libPods.a tidak sedang dibangun. Menghapus libPods.a dari bagian Link Binary With Libraries "memperbaikinya" (meskipun tentu saja saya sekarang memiliki 32 "simbol yang tidak terdefinisi" pesan untuk disortir, karena lib SQLite yang hilang, dll.
Hot Licks

Ini adalah perbaikan yang sama dengan stackoverflow.com/a/21694261/581994 dan beberapa lainnya.
Hot Licks

Saat ini masih merupakan masalah yang terjadi
nsantorello

"Mereka membuat produk sebelumnya libPods.a usang. Saya harus menghapus ..."
Vassily

Ini sebagian besar masalah bagi saya. Untuk beberapa alasan, saya juga memiliki biner dari target tes yang lebih tua di sana.
LJ Wilson

119

Saya mengalami masalah yang sama hari ini.

  1. Saya menyiapkan proyek baru
  2. Saya memasang pod kakao
  3. Saya membuat konfigurasi baru Previewbersama dengan yang ada DebugdanRelease
  4. Sekarang ketika mengkompilasi Previewkonfigurasi baru ini , kompiler tidak akan dapat terhubung dengan Pods dan memberi saya pesan ini:

    ld: library not found for -lPods

Solusinya:

Yang harus saya lakukan adalah lari

 pod install

lagi dan dengan demikian mengkonfigurasi cocoapod untuk Previewkonfigurasi baru . Itu memperbarui proyek saya, ruang kerja dan file proyek Pod dan masalahnya hilang


1
Ini menangkap saya juga. Terutama karena terus bekerja lama setelah saya membuat konfigurasi dan itu hanya ketika saya membersihkan data turunan saya bahwa masalah terjadi.
Daniel Wood

Dan perhatikan peringatan yang ditampilkan di bagian "Statistik pengiriman" dari output "pod install --verbose" atau "pembaruan pod --verbose", seperti target "the` yourApp [Debug] `yang menimpa target` HEADER_SEARCH_PATHS pengaturan `build yang didefinisikan dalam ..." atau "... target menimpa` OTHER_LDFLAGS` pengaturan build ... ".
jk7

ubah pratinjau konfigurasi di Per-konfigurasi Bangun Jalur Produk , lalu lakukan instal pod, pod tidak menyimpan nilai saya di proyek pod, ada bantuan?
liu pluto

Ah! Masalahnya terjadi hanya setelah membuat konfigurasi baru untuk Ekstensi. 3 langkah pertama membantu saya untuk memahami masalah ini. Terima kasih!
iHarshil

70

Pastikan Anda membuka .xcworkspace, bukan.xcodeproj


Ini masalah saya. Saya membuka proyek dari file proyek Xcode biasa. Setelah Anda mulai menggunakan cocoa pod, Anda harus mulai membuka proyek Anda dari file .xcworkspace, bukan .xcodeproj.
HotFudgeSunday

hehe aku selalu melakukan ini :)
yeahdix

INI INI INI
bryan

Ya Tuhan, aku ingin memelukmu. Mengubah banyak hal yang tidak pernah menjadi masalah sejak awal!
kjonsson

53

Bukan solusi yang bekerja untuk saya, ini benar-benar tak tertahankan, ada file libpods.a(yang berwarna merah) saya menghapusnya dan semuanya bekerja dengan baik! Ceria padaku;)


6
Terjadi pada saya juga. Saya telah mengganti nama target saya dan itu menciptakan file .a artefak bermasalah ini.
seenickcode

Jika saya melakukan ini, maka lib yang saya tambahkan menggunakan Cocoapods tidak ditambahkan ke proyek.
Francisco Corrales Morales

1
u membuat hari saya: D, ada 2 target dan saya menghapus satu tetapi podnya masih dan gagal membangun, diselesaikan dengan hanya menghapus referensi pod target itu
mohammad alabid

Hal yang sama terjadi pada saya. Itu adalah proyek lama yang tidak saya sentuh selama bertahun-tahun, masih memiliki format lama Podfile dan sebagainya.
Departamento B

46

Saya telah membagi daftar pod saya di Podfileuntuk target yang berbeda seperti:

target :ABC do
  pod 'KissXML', '~> 5.0'
  pod 'libPhoneNumber-iOS', '~> 0.7.2'
end

target :ABCTests do
  pod 'OCMock', '~> 2.2.1', :inhibit_warnings => true
end

Dan berlari a pod install

Ini menciptakan perpustakaan baru libPods-ABC.ayang harus ditautkan oleh biner saya. Tapi bug itu tidak menghapus pustaka sebelumnya yaitu libPods.a.

Solusi: Keluarkan perpustakaan libPods.adari Build Phasesdari Link Binary With Libraries.



2
Solusinya berbeda. Ini memperbaikinya bagi saya menggunakan solusi tepat ini.
cynistersix

Hapus libPods.a perpustakaan dan kemudian, instal instal memperbaiki masalah untuk saya.
bisma

1
itu diselesaikan ketika kesalahan mengekspor IPHONEOS_DEPLOYMENT_TARGET = 9.0 dengan "ld: library tidak ditemukan untuk -lPods"
jacksonfdam

Bekerja untuk saya, setelah saya mengganti nama target.
alsantos123

46

Saya memiliki file libPod.a lama yang ditentukan (mungkin disebabkan oleh saya mengubah target).

Pengaturan Proyek -> Bangun Fase -> Tautan Biner dengan Perpustakaan

Biasanya, cocoapod hanya akan menyertakan satu perpustakaan, seperti libPods-target.aatau libPods.a. Saya memecahkannya dengan menghapus duplikat.


5
Ini berhasil untuk saya. Saya menambahkan dukungan pod untuk target pengujian (* Tes dan * UITests) dan konfigurasi basis berubah dari Pods.debugmenjadi Pods-MyApp.debug, jadi sekarang saya hanya perlu libPods-MyApp.a(ada ikon "pudar" untuk yang lama libPods.a),
Nicolas Miari

Tidak ada ikon pudar untuk saya tetapi ini adalah satu-satunya solusi yang berhasil.
Yogesh Maheshwari

Sama disini. Terima kasih
rmvz3

Saya mengubah nama proyek, dan kesalahan terjadi. Solusi di atas berhasil untuk saya.
guness

44

jika Anda mengalami masalah dengan ini pada cocoapods v25 / Xcode 5

Proyek Pods Xcode sekarang menetapkan pengaturan pembangunan ONLY_ACTIVE_ARCH ke YA dalam konfigurasi Debug. Anda harus menetapkan hal yang sama pada proyek / target Anda, jika tidak build akan gagal.

https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250

UPDATE Pastikan Anda memiliki permata / cocoapod terbaru

  • sistem pembaruan gem
  • pembaruan cocoapods

Anda akan ingin membangun kembali proyek menggunakan Pod Install untuk membangun kembali proyek.


Ini untuk saya, setelah menambahkan CP ke proyek yang sangat lama.
Josh Hudnall

Sama untuk saya - menambahkan CP ke proyek yang sangat lama, dapat membangun di atas simulator, tetapi begitu saya beralih untuk membangun untuk perangkat, pembangunan gagal. Jawaban itu sangat membantu!
Florian

40

Jika Xcode mengeluh ketika menautkan, misalnya Library tidak ditemukan untuk -lPods, itu tidak mendeteksi dependensi implisit.

Pergi ke Produk> Edit Skema Klik Build Tambah perpustakaan statis Pods, dan pastikan itu di bagian atas daftar Bersihkan dan bangun lagi Jika itu tidak berhasil, verifikasi bahwa sumber untuk spesifikasi yang Anda coba sertakan telah ditarik dari github. Lakukan ini dengan melihat / Pods /. Jika kosong (tidak seharusnya), verifikasi bahwa ~ / .cocoapods / master //. Podspec memiliki url hub git yang benar di dalamnya. Jika masih tidak berfungsi, periksa pengaturan lokasi pembuatan XCode Anda. Pergi ke Preferensi -> Lokasi -> Data Turunan -> Tingkat lanjut dan atur lokasi bangunan ke "Relatif ke Workspace".

http://docs.cocoapods.org/guides/getting_started.html


3
Bagian pertama memperbaiki masalah saya (Produk> Edit Skema, tambahkan Pods ke Build sebagai item pertama). Terima kasih
William Power

Saya memiliki masalah ini di xCode 6.3 dengan cocoapods 0.36.0, dan inilah yang memperbaikinya. Terima kasih!
ProgrammierTier

sama seperti xcode 6.3 cocoapods 0,37 -> Terima kasih !! semakin gila dengan pengaturan target, sementara masalahnya adalah skema. cukup tambahkan Pods.
altagir

36

Saya memiliki masalah yang sama ketika saya mengedit Podfile menambahkan target yang saya gunakan tanpa target sebelumnya.

Podfile

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

Setelah bertanya-tanya di sekitar saya menemukan bahwa di bawah properti target >> tab Umum >> bagian Framework dan Perpustakaan Tertaut, Ada libPods-xxxx.a dan libPods.a yang lama

Saya baru saja menghapus libPods.a dan semuanya bekerja dengan baik.


Itu juga masalah bagi saya. Saya pikir sumber masalahnya adalah saya telah memutakhirkan CocoaPods dan format Podfile selama pengembangan.
gklka

2
Saya memiliki skenario yang persis sama setelah menambahkan target di pod. +1 untuk akurasi
Adriano Spadoni

27

Wiki CocoaPods di GitHub memiliki jawaban yang tepat di FAQ mereka :

  • Pergi ke Product > Edit Scheme
  • Klik Build
  • Tambahkan pustaka statis Pods, dan pastikan itu ada di bagian atas daftar
  • Bersihkan dan bangun kembali
  • Jika itu tidak berhasil, verifikasi bahwa sumber untuk spesifikasi yang Anda coba sertakan telah ditarik dari github. Lakukan ini dengan melihat <Project Dir>/Pods/<Name of spec you are trying to include>. Jika kosong (tidak seharusnya), verifikasi bahwa~/.cocoapods/master/<spec>/<spec>.podspec url github yang benar di dalamnya.
  • Jika masih tidak berfungsi, periksa pengaturan lokasi pembuatan XCode Anda. Pergi ke Preferences -> Locations -> Derived Data -> Advanceddan atur lokasi pembangunan ke "Relatif ke Workspace".

Tangkapan layar


6
Saya juga mengalami masalah ini, tetapi sepertinya saya tidak bisa melakukan langkah-langkah ini. Saya terjebak di "Tambahkan pustaka statis pod dan pastikan itu ada di bagian atas daftar". Pustaka statis tidak muncul dengan saya klik untuk menambahkannya ke skema Bangun. Ada ide?
Bay Phillips

@BayPhillips Tutup proyek Anda saat ini dan buka .xcworkspace yang dibuat di folder proyek Anda. kemudian perpustakaan statis muncul
Juneho Nam

12

Saya mengganti nama proyek menjadi "NBSelector" dari "Partners".

Saya memiliki kesalahan "Library not found for libPods-Partners" setelah mengganti nama proyek. Xcode mencoba menautkan ke file Partners.a yang lama. Hapus saja jika Anda telah menginstal podIn setelah mengganti nama.

masukkan deskripsi gambar di sini


solusi sempurna untuk masalah saya :) tetapi setelah menghapus polong perlu menambahkannya lagi jika Anda ingin menggunakannya
satheesh

11

Menggunakan ONLY_ACTIVE_ARCH = TIDAK di semua pod memecahkan masalah untuk saya. Untuk membuat ini terus-menerus, saya menambahkan kait post_install ke Podfile saya:

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
      target.build_configurations.each do |config|
            config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
      end
  end
end

pod install dan kamu sudah selesai.


8

Apakah Anda membuat 'Distribusi' atau konfigurasi serupa untuk membuat arsip Ad-Hoc dan App Store? Seperti banyak yang lain saya mengikuti rekomendasi Apple dan menjuluki konfigurasi 'Rilis', menyebutnya 'Distribusi' dan menetapkan aturan penandatanganan yang berbeda. Yah, mungkin itu adalah rekomendasi sebelum mereka memperkenalkan skema dan opsi "Distribute" di Organizer, bagaimanapun, saya baru saja mendapatkannya dari sebelumnya.

Lalu saya punya masalah yang sama dengan Pods. Semuanya bekerja dengan baik ketika debugging, tetapi pengarsipan gagal dengan kesalahan tautan. Setelah mencoba ini dan itu saya mengubah konfigurasi Arsip proyek asli saya dari 'Distribusi' menjadi 'Rilis' dan kesalahan tautan hilang.

Namun arsip tidak muncul di Organizer, meskipun saya dapat menemukannya di sistem file, tetapi memiliki ukuran 0.

Langkah terakhir untuk memperbaiki semua ini adalah mengubah pengaturan "Lewati Instalasi" untuk konfigurasi 'Lepaskan' menjadi "TIDAK". Perhatikan, Anda harus melakukan ini hanya untuk proyek utama Anda, tetapi tidak untuk proyek Pods. Lebih baik tinggalkan proyek Pods, karena itu dihasilkan setiap kali Anda menjalankan 'pod install'.

Pembaruan Baru saja mendapat jawaban dari CocoaPods devs. Sepertinya itu tidak berfungsi untuk saya, karena saya sudah mengatur konfigurasi Pods dengan benar. Tapi itu bisa membantu orang lain.


8

Dalam kasus saya masalahnya adalah lokasi Data yang Diperoleh Xcode disetel ke opsi "Legacy". Target CocoaPods (libPods.a) sedang dibangun dengan benar, tetapi Xcode mencari di tempat yang salah untuk itu.

Beralih ke "Unik" (default) menyelesaikan masalah. Anda dapat melakukan ini dengan masuk ke Preferensi> Lokasi dan mengklik tombol Lanjut ...


Tapi saya dalam situasi yang harus saya gunakan "Legacy", terus mencari solusi lain ...
CocoaBob



4

Saya menemukan bahwa memilih "Temukan Ketergantungan implisit" (di bawah skema produk / edit) akan menyelesaikan masalah ini alih-alih harus menambahkan pod sebagai target.


Menjalankan lagi pemasangan pod dapat membantu setelah mengikuti langkah-langkah ini.
StackRunner

3

Saya memeriksa setiap jawaban di sini, tetapi bagi saya itu sangat sederhana ... Pergi ke Target -> Bangun Fase, lalu hapus libPods-YourProject.a, lalu tambahkan lagi menggunakan "+". Jangan khawatir perpustakaannya merah, tidak apa-apa.


3

Saya menggunakan versi cocoapod lama setelah memperbarui cocoapods itu menyarankan saya untuk memperbarui pod diinstal saya karena pembaruan utama karena saya memperbarui setelah lama. Saya memperbaruinya dan pod versi baru diperbarui dengan baik. Tetapi setelah itu saya mendapat error sepertilibrary not found for -lPods-xxxprojectName-xxxxxpodName

Setelah mencoba begitu banyak solusi yang diberikan sebagai jawaban di thred ini, tidak ada yang berhasil untuk saya. Kemudian saya pergi ke pengaturan proyek saya dan menemukan bahwa jalur pods berubah yang sedang aktifOther Linker Flag

Periksa Manage Schemesnama pod Anda yang benar dan bandingkan Other Linker Flag, Ubah jika tidak sama

Jalur pod lama tadinya -l"lPods-xxxprojectName-xxxxxpodName"

Tapi pod baru hanya xxxxxpodNamejadi saya diganti Other Linker Flagdengan yang baru seperti di bawah ini

Diubah ke jalur pod -l"xxxxxpodName"dan berhasil.

Saya tidak tahu alasan sempurna di balik ini tetapi mungkin ini bisa membantu seseorang.


3

Saya memang membuka ruang kerja, tetapi mendapat kesalahan yang sama.

Bangun Arsitektur Aktif Hanya diatur ke YA

pecahkan masalah saya.


Itu membantu. Terima kasih. Entah bagaimana itu ditetapkan "YA" untuk Debug hanya sementara sisanya mengkonfigurasi "TIDAK" dan saya telah melihat kesalahan itu untuk semua build kecuali Debug.
Pavel Yakimenko

Ini hanya membantu saya. Jawaban seperti 'Buka sebagai .workspace' terlalu membosankan. Saya pikir pengembang pertama-tama harus memeriksa menginstal dokumen panduan dengan cukup menyeluruh ..
KoreanXcodeWorker

2

Selesaikan dengan mengambil langkah-langkah di bawah ini:

  • Perbarui instalasi cocoapod Anda. ($ [sudo] permata pasang cocoapods)
  • Instal ulang dependensi Anda di bawah proyek Anda. (instal pod)
  • Bersihkan dan bangun kembali / arsip.

Ini sebenarnya bekerja dengan sangat baik. Saya telah memperbarui salah satu pod di proyek saya dan itu merusaknya. Saya mengikuti langkah-langkah ini dan berhasil. Itu adalah perbaikan cepat. Terima kasih
agarcian

2

Dalam kasus saya pod installmemperbaiki masalah, setelah membuat skema distribusi dan rilis.


1

Saya mendapat masalah yang sama saat pengarsipan untuk pengiriman. Diskusi tentang masalah ini dapat ditemukan di sini: https://github.com/CocoaPods/CocoaPods/issues/155

Singkatnya, dua metode bekerja untuk saya:

  1. Pengaturan "Preferences -> Locations -> Advanced" ke "Custom (Relative to Workspace)" ATAU
  2. Setel Podfile ke - platform :ios, :deployment_target => "5.0"

1

Menggunakan Xcode 5 dengan iOS 7

Inilah yang saya lakukan setelah terjebak selama satu jam. Hapus ARM64 dari Bangun Pengaturan> Arsitektur Valid.

TAMBAH: Juga, untuk kasus saya, itu bukan lokasi data turunan. Saya memilih unik untuk membangun lokasi.


1

jika Anda menggunakan iOS7 dan Xcode 5, lakukan:

  • Pilih Proyek Pods Anda.
  • Pergi ke Pod Target dan di Bangun Pengaturan, pilih Arsitektur-> Arsitektur standar (armv7, armv7s).
  • Lakukan hal yang sama untuk setiap Target Proyek Pods Anda.

1

Saya mencoba SETIAP jawaban di utas ini tidak berhasil. Akhirnya menyelesaikan masalah saya dengan mencocokkan "Jalur Pra-Konfigurasi Pembuatan Produk" di proyek target saya dengan nilai di proyek Pods. Ternyata mereka membangun ke dua lokasi output yang berbeda. Tidak ada saran lain di utas ini yang relevan bagi saya. Akan lebih bagus jika XCode memberikan deskripsi kesalahan yang berguna (seperti MENGAPA tidak dapat menggunakan lib - File Not Found, Tidak ada arsitektur yang cocok ditemukan, dll.).


1

Dalam masalah ini, Jika Anda telah menginstal & memperbarui pod di sistem Anda maka Xcode Anda tidak dapat menemukan perpustakaan Pods. Untuk mengatasi masalah ini, silakan periksa penyebab berikut yang mungkin terjadi:

  1. Anda menggunakan ruang kerja.
  2. Pustaka Pods dibuat.
  3. Pustaka Pods dirujuk dalam grup produk proyek Anda.
  4. Target Anda termasuk pustaka Pods di tautan dengan fase pembuatan kerangka kerja.

1

mencoba

link_with 'YouTarget1', 'YouTarget2' ...

Proyek saya berhasil, target tiba-tiba berhenti dikompilasi. Kemudian ditambahkan "link_with" dan kembali normal.

Rupanya, sekarang hanya terhubung ke target pertama, adalah apa yang dikatakan tautan:

http://guides.cocoapods.org/syntax/podfile.html#link_with


yang satu ini memperbaikinya untuk saya ... mempunyai masalah, bahwa target pertama sedang dibangun dan target kedua gagal dengan "ld: perpustakaan tidak ditemukan untuk -lPods ..."
Muxor

1

Jika Anda masih mendapatkan masalah ini, cobalah:

pod update

Apakah berhasil bagi saya, semoga ini membantu Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.