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?
Jawaban:
Apakah Anda membuka ruang kerja (yang dihasilkan oleh CocoaPods) alih-alih xcodeproj?
sumber
Podfile
, tentukan platform seperti ini:platform :ios, :deployment_target => "3.2"
. Itu harus mengkonfigurasinya dengan benar saat berikutnya Anda menjalankanpod install
..xcworkspace
file, bukan.xcodeproj
. Dengan cara ini selain proyek Anda, Xcode tahu tentang proyek diPods/
direktori dan cara membuatnyalibPods.a
..xcodeproj
terbuka, Anda harus menutupnya sebelum membuka.xcworkspace
file.Saya memisahkan aplikasi dan target pengujian di Podfile dengan menggunakan
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.
sumber
Saya mengalami masalah yang sama hari ini.
Preview
bersama dengan yang adaDebug
danRelease
Sekarang ketika mengkompilasi
Preview
konfigurasi baru ini , kompiler tidak akan dapat terhubung dengan Pods dan memberi saya pesan ini:Solusinya:
Yang harus saya lakukan adalah lari
lagi dan dengan demikian mengkonfigurasi cocoapod untuk
Preview
konfigurasi baru . Itu memperbarui proyek saya, ruang kerja dan file proyek Pod dan masalahnya hilangsumber
Pastikan Anda membuka
.xcworkspace
, bukan.xcodeproj
sumber
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;)sumber
Saya telah membagi daftar pod saya di
Podfile
untuk target yang berbeda seperti:Dan berlari a
pod install
Ini menciptakan perpustakaan baru
libPods-ABC.a
yang harus ditautkan oleh biner saya. Tapi bug itu tidak menghapus pustaka sebelumnya yaitulibPods.a
.Solusi: Keluarkan perpustakaan
libPods.a
dariBuild Phases
dariLink Binary With Libraries
.sumber
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.a
ataulibPods.a
. Saya memecahkannya dengan menghapus duplikat.sumber
Pods.debug
menjadiPods-MyApp.debug
, jadi sekarang saya hanya perlulibPods-MyApp.a
(ada ikon "pudar" untuk yang lamalibPods.a
),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
Anda akan ingin membangun kembali proyek menggunakan Pod Install untuk membangun kembali proyek.
sumber
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
sumber
Saya memiliki masalah yang sama ketika saya mengedit Podfile menambahkan target yang saya gunakan tanpa target sebelumnya.
Podfile
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.
sumber
Wiki CocoaPods di GitHub memiliki jawaban yang tepat di FAQ mereka :
Product > Edit Scheme
Build
<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.Preferences -> Locations -> Derived Data -> Advanced
dan atur lokasi pembangunan ke "Relatif ke Workspace".sumber
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.
sumber
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:
pod install
dan kamu sudah selesai.sumber
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.
sumber
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 ...
sumber
Hanya menambahkan "Jalur Pencarian Perpustakaan" (dalam Pengaturan Build dari 'MyProject') ke "Pods / build / Debug-iphonesimulator" bekerja untuk saya (ketika menggunakan simulator).
Dapatkan dari sini: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
sumber
Jika Anda Mengarsipkan untuk iOS7 dan Xcode5 dan mendapatkan kesalahan ini, silakan merujuk ke tautan ini. Sepertinya Apple menjatuhkan arsitektur yang membutuhkan pod kakao https://github.com/CocoaPods/CocoaPods/pull/1352
sumber
Saya menemukan bahwa memilih "Temukan Ketergantungan implisit" (di bawah skema produk / edit) akan menyelesaikan masalah ini alih-alih harus menambahkan pod sebagai target.
sumber
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.
sumber
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 seperti
library 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 aktif
Other Linker Flag
Periksa
Manage Schemes
nama pod Anda yang benar dan bandingkanOther Linker Flag
, Ubah jika tidak samaJalur pod lama tadinya
-l"lPods-xxxprojectName-xxxxxpodName"
Tapi pod baru hanya
xxxxxpodName
jadi saya digantiOther Linker Flag
dengan yang baru seperti di bawah iniDiubah ke jalur pod
-l"xxxxxpodName"
dan berhasil.Saya tidak tahu alasan sempurna di balik ini tetapi mungkin ini bisa membantu seseorang.
sumber
Saya memang membuka ruang kerja, tetapi mendapat kesalahan yang sama.
Bangun Arsitektur Aktif Hanya diatur ke YA
pecahkan masalah saya.
sumber
Selesaikan dengan mengambil langkah-langkah di bawah ini:
sumber
Dalam kasus saya
pod install
memperbaiki masalah, setelah membuat skema distribusi dan rilis.sumber
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:
- platform :ios, :deployment_target => "5.0"
sumber
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.
sumber
jika Anda menggunakan iOS7 dan Xcode 5, lakukan:
sumber
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.).
sumber
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:
sumber
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
sumber
Jika Anda masih mendapatkan masalah ini, cobalah:
Apakah berhasil bagi saya, semoga ini membantu Anda.
sumber