-lPods için kütüphane bulunamadı


334

Bir projeyi arşivlerken bir hatayla karşılaştım. Bu benim ortamım.

  • Mac OS Lion
  • Xcode 4.3.1
  • iOS SDK 5.1

Proje dağıtım hedefi:

IPHONEOS_DEPLOYMENT_TARGET 3.2

Hata şunu gösterir:

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

Sanırım Pods, XCode proje bağımlılıklarını yönetmek için kullandığım CocoaPods. https://github.com/CocoaPods/CocoaPods

Bu benim Podfile'ım

platform :ios  
dependency 'libPusher', '1.1'

Hatanın ne anlama geldiğinden emin değilim?


Yanıtın hiçbirinin kapsamadığı sorunun nedeni. bu yanıtı buradan kontrol edin: stackoverflow.com/questions/24050012/…
hasan

Yanıtlar:


611

Xcodeproj yerine (CocoaPods tarafından oluşturulan) çalışma alanını mı açıyorsunuz?


26
Yaptım. Sorun, Pods projesinin yayın mimarisini 'armv6 armv7' olarak değiştirdikten sonra çözüldü.
angelokh

10
Aha, Sepetinde Podfile, şöyle platformu belirtin: platform :ios, :deployment_target => "3.2". Bu, bir sonraki çalıştırışınızda doğru şekilde yapılandırılmalıdır pod install.
alaşım

248
Orada yeni başlayanlar için açık olmak için .xcworkspace, değil, dosyayı açıyor olmalısınız .xcodeproj. Bu şekilde, projenize ek olarak, Xcode Pods/dizindeki proje ve nasıl inşa edileceğini bilir libPods.a.
Jonathan Tran

13
@ JonathanTran'ın yorumundan sonra ... .xcodeprojaçık varsa, .xcworkspacedosyayı açmadan önce kapatmanız gerekir .
Ross

4
Kapsül kullandığınız projenin de armv6 armv7 mimarisine sahip olması gerektiğini unutmayın (eğer bu kaps proje mimarisinde kullandığınız seçenek bu ise). Bunu yapmazsanız aynı hatayı alırsınız.
Patrick Bassut

173

Uygulamayı ve Podfile'daki test hedeflerini kullanarak ayırdım

target :App do
    
end

target :AppTests do
    
end

Bu , sırasıyla libPods-App.a ve libPods-AppTests.a adlı iki yeni ürünle sonuçlandı ve önceki ürünü libPods.a'yı eski haline getirdi. Ben bu ürünü kaldırmak zorunda Bağlantı İkili ile Kütüphaneler Bölüm ait Yapı Aşamaları hem hedeflerin yapılandırması.


3
Evet, bu iş parçacığında daha önce bir düzine başka şey denedikten sonra benim için buydu. Pod dosyamın yukarıdaki gibi iki hedefi var ve bu nedenle libPods.a oluşturulmuyordu. "Sabit" Bağlantı İkili ile Kütüphaneler bölümünden silme libPods.a o (ders arasında şimdi nedeniyle eksik bir SQLite lib, vb aracılığıyla sıralamak için 32 "Tanımsız semboller" mesajınız var gerçi
Sıcak Licks

Bu, stackoverflow.com/a/21694261/581994 ve diğer birkaç sürümle aynı düzeltmedir .
Hot Licks

Şu anda hala meydana gelen bir sorun
nsantorello

"önceki ürünü libPods.a eski yaptı. Kaldırmak zorunda kaldı ..."
Vassily

Bu çoğunlukla benim için bir sorundu. Bazı nedenlerden dolayı, orada daha eski bir test hedefinden bir ikili dosya da aldım.
LJ Wilson

119

Bugün de benzer bir sorunla karşılaştım.

  1. Yeni bir proje kurdum
  2. Kakao kapsülleri kurdum
  3. PreviewMevcut olanla birlikte yeni bir yapılandırma oluşturdum DebugveRelease
  4. Şimdi bu yeni Previewyapılandırmayı derlerken , derleyici Pod'larla bağlantı kuramayacak ve bana şu mesajı verecektir:

    ld: library not found for -lPods

Çözüm:

Yapmam gereken koşmaktı

 pod install

ve böylece yeni Previewkonfigürasyon için kocoapodların yapılandırılması. Projemi, çalışma alanını ve Pod'un proje dosyasını güncelledi ve sorun kayboldu


1
Bu da beni yakaladı. Özellikle yapılandırmaları oluşturduktan sonra uzun süre çalışmaya devam ettiğinden ve yalnızca türetilmiş verilerimi temizlediğimde sorunun ortaya çıkmasıydı.
Daniel Wood

Ve "pod install --verbose" veya "pod update --verbose" çıktılarının "Gönderme istatistikleri" bölümünde görüntülenen uyarılara dikkat edin. "yapı ayarı tanımlandı ..." veya "... hedef` `OTHER_LDFLAGS` yapı ayarını geçersiz kılıyor ...".
jk7

Yapılandırma Başına Yapı Ürünleri Yolu'ndaki önizleme yapılandırmasını değiştirin ve ardından bölme yüklemesi yapın , bölme, bölme projesinde değerimi kaydetmiyor, herhangi bir yardım?
liu pluto

Ah! Uzantılar için yeni bir yapılandırma oluşturulduktan hemen sonra sorun oluşuyordu. İlk 3 adım, sorunu anlamama yardımcı olur. Teşekkürler!
iHarshil

70

Açtığınızdan emin olun .xcworkspace, değil.xcodeproj


Bu benim sorunumdu. Projeyi normal Xcode proje dosyasından açıyordum. Kakao kapsülleri kullanmaya başladıktan sonra, projenizi .xcodeproj'dan değil .xcworkspace dosyasından açmaya başlamanız gerekir.
HotFudgeSunday

hehe her zaman bunu yaparım :)
yeahdixon

BU BU BU
bryan

Aman tanrım sana sarılmak istiyorum. Asla sorun olmayacak kadar çok şey değişti!
kjonsson

53

Bir çözüm benim için işe yaramadı, bu gerçekten dayanılmaz, bir dosya libpods.a(kırmızı renkli) çıkardım ve her şey iyi çalışıyor! Bana şerefe;)


6
Bana da oldu. Hedefimi yeniden adlandırmıştım ve bu sorunlu yapı .a dosyasını oluşturdu.
seenickcode

Bunu yaparsam, Cocoapods kullanarak eklediğim libs projeye eklenmiyor.
Francisco Corrales Morales

1
u günümü yaptım: D, 2 hedef vardı ve ben bir tane sildim ama hala bakla ve inşa edemedi, sadece o hedefin baklalarını silme ile çözüldü
mohammad alabid

Bana da aynısı oldu. Yıllarca dokunmadığım eski bir projeydi, hala eski formatta Podfile vsetera vardı.
Departamento B

46

Pod listelerimi aşağıdaki Podfilegibi farklı hedefler için böldüm:

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

Ve koştu pod install

Bu, libPods-ABC.aikili dosyamın bağlanması gereken yeni bir kütüphane oluşturdu . Ancak hata önceki kitaplığı yani silmemesi oldu libPods.a.

Çözüm: kütüphane çıkarın libPods.adan Build Phasesarasında Link Binary With Libraries.



2
Çözüm farklı. Bu, bu kesin çözümü kullanarak benim için düzeltti.
cynistersix

LibPods.a kütüphanesini kaldırın ve sonra pod install sorunu benim için düzeltin.
bisma

1
hata dışa aktarıldığında çözüldü IPHONEOS_DEPLOYMENT_TARGET = 9.0 "ld: -lPods için kütüphane bulunamadı"
jacksonfdam

Hedefi yeniden adlandırdıktan sonra bana çalışıyor.
17:27

46

Belirtilen eski bir libPod.a dosyası vardı (muhtemelen hedefleri değiştirmemin neden olduğu).

Proje Ayarları -> Derleme Aşamaları -> İkili Kütüphanelere Bağlama

Genellikle, kokoapodlar libPods-target.aveya gibi sadece bir kütüphane içerir libPods.a. Yinelemeyi kaldırarak çözdüm.


5
Bu benim için çalıştı. Ben (* Testler ve * UITests) ve baz konfigürasyonu değiştirildi Test hedefler için pod desteği ekleyerek edildi Pods.debugiçin Pods-MyApp.debugşimdi ben sadece ihtiyaç libPods-MyApp.a(eski için bir "soluk" simge oldu libPods.a,)
Nicolas Miari

Benim için soluk bir simge yoktu ama işe yarayan tek çözüm buydu.
Yogesh Maheshwari

Burada aynı. Teşekkürler
rmvz3

Proje adını değiştirdim ve hata oluştu. Yukarıdaki çözüm benim için çalıştı.
gunes

44

cocoapods v25 / Xcode 5 ile ilgili sorun yaşıyorsanız

Pods Xcode projesi artık Hata Ayıklama yapılandırmasında ONLY_ACTIVE_ARCH oluşturma ayarını YES olarak ayarlıyor. Aynı şeyi projenizde / hedefinizde ayarlamanız gerekir, aksi takdirde derleme başarısız olur.

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

GÜNCELLEME En son değerli taşlara / kokoapodlara sahip olduğunuzdan emin olun

  • gem güncelleme sistemi
  • mücevher güncelleme cocoapods

Projeyi yeniden oluşturmak için Pod Install'u kullanarak projeyi yeniden oluşturmak isteyeceksiniz.


Çok eski bir projeye CP ekledikten sonra bu benim içindi.
Josh Hudnall

Benim için aynı - çok eski bir projeye CP ekledi, simülatör üzerine inşa edebilirdi, ancak cihaz için derlemeye geçiş yaptığımda derleme başarısız oldu. Bu cevap çok yardımcı oldu!
Florian

40

Xcode bağlanırken şikayet ederse, örneğin -lPods için Kütüphane bulunamadı, örtülü bağımlılıkları algılamaz.

Ürüne gidin> Düzeni Düzenle'ye tıklayın Oluştur'a tıklayın Pods statik kitaplığını ekleyin ve listenin en üstünde olduğundan emin olun Tekrar temizle ve oluştur Bu işe yaramazsa, eklemeye çalıştığınız özelliklerin kaynağının github'dan çekti. Bunu / Pods / dizinine bakarak yapın. Boşsa (olmamalıdır), ~ / .cocoapods / master //. Podspec öğesinin içinde doğru git hub URL'sinin bulunduğunu doğrulayın. Hala çalışmıyorsa, XCode derleme konumları ayarlarınızı kontrol edin. Tercihler -> Konumlar -> Türetilmiş Veriler -> Gelişmiş'e gidin ve oluşturma konumunu “Çalışma Alanına Göre” olarak ayarlayın.

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


3
İlk bölüm sorunumu düzeltti (Ürün> Düzeni Düzenle, İlk öğe olarak Oluştur'a Podlar ekleyin). Teşekkür ederim
William Power

Bu sorunu cocoapods 0.36.0 ile xCode 6.3'te yaşadım ve bu sorunu düzeltti. Teşekkür ederim!
Programcı

xcode 6.3 cocoapods 0.37 ile aynı -> Teşekkürler !! sorun şemadayken hedef ayarlarla deliye dönüyordu. sadece Pod ekleyin.
altagir

36

Daha önce hedef olmadan kullandığım hedefi ekleyerek Podfile'ı düzenlerken de aynı sorunu yaşadım.

Podfile

target 'xxxx' do

pod 'xyz'
pod 'abc'    

end

Etrafı merak ettikten sonra hedef özellikler altında >> Genel sekmesi >> Bağlantılı Çerçeveler ve Kütüphaneler bölümünde yeni libPods-xxxx.a ve eski libPods.a olduğunu gördüm.

Ben sadece libPods.a kaldırdım ve her şey iyi çalıştı.


Benim için sorun da buydu. Sorunun kaynağı, geliştirme sırasında CocoaPods'u ve Podfile formatını yükseltmemdi.
gklka

2
Kapsülde hedef ekledikten sonra tamamen aynı senaryo yaşadım. Doğruluk için +1
Adriano Spadoni

27

CocoaPods'un GitHub'daki wiki'sinin cevabı SSS bölümünde :

  • Adresine git Product > Edit Scheme
  • Tıklamak Build
  • Bölmeler statik kitaplığını ekleyin ve listenin en üstünde olduğundan emin olun
  • Temizleyin ve tekrar inşa edin
  • Bu işe yaramazsa, eklemeye çalıştığınız özelliklerin kaynağının github'dan alındığını doğrulayın. Bunu içine bakarak yapın <Project Dir>/Pods/<Name of spec you are trying to include>. Boşsa (olmamalıdır), ~/.cocoapods/master/<spec>/<spec>.podspeciçinde doğru github URL'sinin bulunduğundan emin olun.
  • Hala çalışmıyorsa, XCode derleme konumları ayarlarınızı kontrol edin. Git Preferences -> Locations -> Derived Data -> Advanced"Workspace Göreli" ve set inşa konumu.

Ekran görüntüsü


6
Ben de bu sorunla karşılaştım ama bu adımları yapamıyorum. "Kapsüllerin statik kitaplığını ekleyin ve listenin en üstünde olduğundan emin olun." Statik kütüphane Oluşturma şemasına eklemek için tıkladığımda görünmüyor. Herhangi bir fikir?
Bay Phillips

@BayPhillips Geçerli projenizi kapatın ve proje klasörünüzde oluşturulan .xcworkspace'i açın. statik kütüphane ortaya çıkar
Juneho Nam

12

Projeyi "Ortaklar" dan "NBSelector" olarak değiştiriyordum.

Projeyi yeniden adlandırdıktan sonra "libPods-Partners için kütüphane bulunamadı" hatasıyla karşılaştım. Xcode eski Partners.a dosyasına bağlanmaya çalışıyordu. Yeniden adlandırdıktan sonra podInstalled varsa kaldırın.

resim açıklamasını buraya girin


benim sorunum için mükemmel bir çözüm :) ama bakla çıkardıktan sonra kullanmak istiyorsanız tekrar
eklemeniz

11

Tüm kapsüllerde ONLY_ACTIVE_ARCH = NO kullanmak sorunu benim için çözdü. Bunu kalıcı yapmak için Podfile'ma bir post_install kancası ekledim:

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 ve işiniz bitti.


8

Geçici ve App Store arşivlerini oluşturmak için 'Dağıtım' veya benzeri bir yapılandırma oluşturdunuz mu? Diğerleri gibi Apple'ın önerilerini izledim ve 'Release' olarak adlandırdım, 'Dağıtım' olarak adlandırdım ve buna farklı imzalama kuralları koydum. Belki de bu düzenleri ve Organizatörde "Dağıt" seçeneğini tanıtmadan önce bir öneriydi, zaten, daha önce de vardı.

Sonra Pods ile aynı sorunu yaşadım. Hata ayıklama sırasında her şey iyi çalıştı, ancak bağlantı hatasıyla arşivleme başarısız oldu. Bunu denedikten ve orijinal projemin Arşiv yapılandırmasını 'Dağıtım'dan' Serbest Bırak 'olarak değiştirdim ve bağlantı hatası gitti.

Ancak arşiv Organizatör'de görünmedi, ancak dosya sisteminde bulabildim, ancak 0 boyutu vardı.

Tüm bunları düzeltmek için son adım, 'Release' yapılandırmasının "Skip Install" ayarını "NO" olarak değiştirmekti. Bunu yalnızca ana projeniz için yapmanız gerektiğini, ancak Pod projesi için yapmanız gerekmediğini unutmayın. 'Pod kurulumu' çalıştırdığınızda oluşturulduğu için Pod projesini olduğu gibi bırakmanız daha iyi olur.

Güncelleme CocoaPods devs'den bir yanıt aldım Pods yapılandırmasını doğru şekilde ayarladığım için benim için çalışmıyor gibi görünüyor. Ama başka birine yardımcı olabilir.


8

Benim durumumda sorun, Xcode'un Türetilmiş Veri konumunun "Eski" seçeneğine ayarlanmış olmasıydı. CocoaPods hedefi (libPods.a) doğru şekilde oluşturuluyordu, ancak Xcode bunun için yanlış yere bakıyordu.

"Benzersiz" (varsayılan) olarak değiştirmek sorunu çözdü. Bunu Tercihler> Konumlar'a gidip Gelişmiş ... düğmesini tıklayarak yapabilirsiniz.


Ama ben "Legacy" kullanmak zorundayım, başka bir çözüm aramaya devam
ediyorum



4

"Örtülü Bağımlılıkları Bul" (ürün / düzenleme şeması altında) seçmenin, hedef olarak kapsül eklemek zorunda kalmadan bu sorunu çözeceğini buldum.


Ayrıca bölme yüklemesini yeniden çalıştırmak, bu adımları izledikten sonra yardımcı olabilir.
StackRunner

3

Buradaki her cevabı geçtim, ama benim için inanılmaz derecede basitti ... Hedef -> Fazlar Oluştur'a gidin, sonra libPods-YourProject.a dosyasını kaldırın ve sonra "+" kullanarak tekrar ekleyin. Kütüphanenin kırmızı olması konusunda endişelenme, sorun değil.


3

Ben cocoapods güncelledikten sonra eski cocoapod sürümünü kullandım, uzun süre sonra güncellediğim için büyük güncellemeden dolayı yüklü kapsülü güncellememi öneririm. Ben güncelleme ve yeni sürüm bakla iyi güncellendi. Ama ondan sonra hatayı aldımlibrary not found for -lPods-xxxprojectName-xxxxxpodName

Bu fikirde cevap olarak verilen birçok çözümü denedikten sonra, bu benim için işe yaramadı. Sonra proje ayarlarına gittim ve bakla yolunun değiştiğini gördüm.Other Linker Flag

Bölgenizin Manage Schemesdoğru Other Linker Flagolup olmadığını kontrol edin ve karşılaştırın , Benzer değilse değiştirin

Eski pod yolu -l"lPods-xxxprojectName-xxxxxpodName"

Ama yeni kapsüller sadece aşağıdaki gibi xxxxxpodNameyenisiyle değiştirildimOther Linker Flag

Pod yolu olarak değiştirildi -l"xxxxxpodName"ve işe yaradı.

Bunun arkasındaki mükemmel nedeni bilmiyorum ama bu bazılarına yardım edebilir.


3

Çalışma alanını açtım ama aynı hatayı aldım.

Yalnızca Aktif Var olarak EVET Oluştur

sorunumu çöz.


Bu yardımcı olur. Teşekkür ederim. Her nasılsa sadece geri kalan yapılandırmalar "HAYIR" varken Debug için "EVET" olarak ayarlanmış ve hata ayıklama hariç tüm yapıları için bu hatayı gördüm.
Pavel Yakimenko

Bu sadece bana yardımcı oldu. Bu tür bir '.workspace olarak aç' cevabı çok sıkıcı. Sanırım geliştiriciler ilk önce yükleme kılavuzu belgelerini yeterince kontrol etmelidir ..
KoreanXcodeWorker

2

Aşağıdaki adımları uygulayarak çözdüm:

  • Cococood kurulumunuzu güncelleyin. ($ [sudo] gem kurulum cocoapods)
  • Bağımlılıklarınızı projeniz altında yeniden kurun. (kapsül kurulumu)
  • Temizleyin ve yeniden oluşturun / arşivleyin.

Bu aslında çok iyi çalıştı. Projemdeki kapsüllerden birini güncelledim ve bu kırdı. Bu adımları izledim ve işe yaradı. Hızlı bir düzeltme oldu. Teşekkürler
agarcian

2

Benim durumumda pod install, dağıtım ve sürüm şemaları oluşturduktan sonra sorunu düzeltti.


1

Göndermek için arşivlerken de aynı sorunu yaşadım. Bu konu hakkında tartışma burada bulunabilir: https://github.com/CocoaPods/CocoaPods/issues/155

Özetle, benim için iki yöntem işe yarıyor:

  1. "Tercihler -> Konumlar -> Gelişmiş" i "Özel (Çalışma Alanına Göre)" olarak ayarlama VEYA
  2. Poddosyasını şu şekilde ayarla: - platform :ios, :deployment_target => "5.0"

1

İOS 7 ile Xcode 5'i kullanma

Bir saat boyunca takıldıktan sonra bunu yaptım. ARM64'ü Yapı Ayarı> Geçerli Mimari'den kaldırın.

ADDED: Ayrıca, benim durumum için, veri konumu türetilmedi. Yapı konumu için benzersiz seçtim.


1

iOS7 ve Xcode 5 kullanıyorsanız, şunları yapın:

  • Kapsül Projenizi seçin.
  • Hedef Bölmelere gidin ve Oluşturma Ayarları'nda Mimariler-> Standart mimariler (armv7, armv7s) öğesini seçin.
  • Kapsül Projenizin her Hedefi için de aynısını yapın.

1

Ben boşuna bu iş parçasında HER yanıtı denedim. Son olarak, hedef projemdeki "Yapılandırma Öncesi Yapı Ürünleri Yolu" nu Pods projesindeki değerle eşleştirerek sorunumu çözdüm. İki farklı çıkış yerine inşa ettikleri anlaşılıyor. Bu konudaki diğer önerilerin hiçbiri benim için anlamlı değildi. XCode yararlı bir hata açıklaması verdiyse harika olurdu (lib neden kullanılamaz - Dosya Bulunamadı, Eşleşen mimari bulunamadı, vb.).


1

Bu sorunda, sisteminizde bölme zaten yüklediyseniz ve güncellediyseniz, Xcode'unuz Pod kitaplığını bulamıyor.Bu sorunu çözmek için lütfen aşağıdaki nedenleri kontrol edin:

  1. Çalışma alanını kullanıyorsunuz.
  2. Pod kitaplığı oluşturulur.
  3. Pod kitaplığına projenizin ürünler grubunda referans verilir.
  4. Hedefiniz, çerçeveler oluşturma aşamasıyla bağlantılı Pods kütüphanesini içerir.

1

Deneyin

link_with 'YouTarget1', 'YouTarget2' ile ...

Projem çalıştı, hedefler birden derlenmeyi bıraktı. Sonra "link_with" eklendi ve normale döndü.

Görünüşe göre, şimdi sadece ilk hedefe bağlanıyor, bağlantının söylediği şey:

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


bu benim için düzeltti ... sorun vardı, ilk hedef inşa edildi ve ikinci hedef başarısız oldu "ld: -lPods için kütüphane bulunamadı ..."
Muxor

1

Hala bu sorunu alıyorsanız, şunu deneyin:

pod update

İşi benim için yaptı, umarım bu sana yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.