AdMob'a uygulama yerleştirildikten sonra "kütüphane bulunamadı" hatası


150

Uygulamamı bir AdMob'a yerleştirdikten sonra hata alıyorum. Uygulama bugüne kadar çalışıyordu. Hata şudur:

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

Bunu nasıl düzeltebilirim? Teşekkür ederim.




Bazen: Cihazınızı fişten çekin ve önce projeyi oluşturun. Kitaplıklar oluşturacak ve daha sonra cihazda çalıştırabileceksiniz.
TheTiger

Yanıtlar:


114

Bazen kütüphanenin referansını kaldırır ve tekrar referans eklersiniz.

Google Mobile Ads SDK'sını ve diğer kütüphaneleri tekrar sıfırdan eklemenin yanı sıra, Kütüphane Arama Yollarını kontrol etmenizi öneririm . Bir hedefi kopyaladığınızda veya çoğalttığınızda, Xcode herhangi bir "\" ile çift tırnak işaretinden kaçması gerektiğine karar verir. Tüm \ 'leri kaldırdığınızdan emin olun.

resim açıklamasını buraya girin

Yolumu birden çok '\' ile ön ek yaparak hatayı çoğaltmayı başardım.


iyi bir, pod kurulumundan sonra, kütüphaneden biri orada listelenmedi. Nedenini bilmiyorum ama bu kütüphane yolunu eklemek işe yaradı.
Warewolf

Peki bu benim sorunum "Kütüphane -lART için bulunamadı" düzeltildi ve gerçekten inanılmaz! Teşekkür ederim !
ZedTuX

"Başlık Arama Yolları" nı da düşünün.
Luat Vu Dinh

@raurora Kütüphane arama yollarına nasıl erişirsiniz?
Massimo Frittelli

1
@MassimoFrittelli Project> Derleme Ayarları sekmeleri> Arama Yolları. Arama seçeneğine de yazabilirsiniz.
raurora

315

Benzer bir "kütüphane bulunamadı" sorunum vardı. Ancak yanlışlıkla .xcodeprojdosyayı yerine dosyayı kullanıyordu çünkü .xcworkspace.


4
Birisi .xcodeproj ve .xcworkspace'in amacını açıklayabilir mi?
EFreak

11
Bunun gibi şeyler beni Javascript ekosistemini
Mark

Bunu nasıl değiştirebilirim ..?
Brayan Loayza

8
xcworkspace, Cocoapod'ları kullandığınız zamandır. Bu Xcode sorunu değil, kullanıcılar.
Azam

1
.xcworkspace, çözümünüzde 1'den fazla "proje" bulunduğunuz zamandır. Örneğin, birçok projede kullandığınız harici kütüphanelere (cocoapods) veya kendi kütüphanenize sahip olabilirsiniz.
Daniel Benedykt

86

Senin Hedef seçin gidin "Build Phases"de "Link Binary With Libraries"remove ".a"o kütüphanenin dosyası. Temizleyin ve oluşturun.


3
Evet,
Xcode'un

Gerçekten hoş!! benim sorunum eski projeye kullanıcı çerçevesi eklediğim zamandı. Coreplot.a kaldırın ve iyi çalışıyor !!!!
Jose Pose S

66

Aşağıdaki gibi Cocoapods ile ilgili hata varsa:

library not found for -lPod-...

Diğer Bağlayıcı Bayraklarını kontrol etmeniz ve oradan kaldırmanız gerekir.

Ekstra Bilgi: Cocoapod kullanan eski bir projeniz varsa. Ve son zamanlarda use_frameworks'i eklemeniz gerekiyordu! podfile için. cocoapods, kütüphaneleri artık Diğer Bağlayıcı Bayraklarınıza eklemeyecektir. Bu nedenle, use_frameworks uygulamasını kullanmadan önce bunları diğer bağlayıcı bayraklarından el ile kaldırmanız gerekebilir!


1
Burada birçok bayrak var, Pod için tümünü mi yoksa sadece birini mi çıkarmalıyım?
Mayur Deshmukh

Bu bayraklar bir soruna neden oluyorsa. hala kullanmak istiyorsanız bunları kaldırmanız veya saklamanız ve kitaplığı eklemeniz gerekir.
hasan

1
Kakao kapsülleri tarafından manuel olarak eklenen kütüphaneyi kaldırmaya çalıştığınızda bu olur sanırım. Doğru yol, kitaplığı pod dosyanızdan kaldırmaktır. sonra tekrar pod kurulumunu çalıştırın
hasan

1
Teşekkürler!! Bu benim için bir ipucuydu :). Benim durumumda, yinelenen hedef her -l "çerçeve" iki satır "-l" ve "çerçeve" bölünmüştür !!
Eva Madrazo

1
@IanSteffy sadece birleştirmek
Eva Madrazo

57

Benim durumum için Xcode 7 , ayrıca Xcode 9.1'de çalıştı

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

set Build Active architecture OnlyiçinYes

resim açıklamasını buraya girin


2
App Store için bir Üretim oluşturma oluşturmamız gerektiğinde ne olacak? Yani Üretim Üretimi için HAYIR olmalı.
Jabbar

üretim için HAYIR olması gerektiğini kabul edin
Ted

2
Bu Üretim Üretimi Kurulumu üzerinde HİÇBİR ETKİSİ olmayacak mı?
Jabbar

1
Pinterest SDK'yı XCode 9.2 ve iOS 11'e entegre ederken benim için çalıştı
Aakash Aggarwal

21

Bu, cocoapods kullanıyorsanız .xcworkspace, varsayılan .xcodeprojdosya yerine dosyayı kullanın .


15

Hata aşağıdaki gibi ise

ld: -lpods için kütüphane bulunamadı

Ben kırmızı renkte bir dosya "libPods.a" (eksik dosyalar gibi) bir şekilde projenin Çerçeve grubunda oluşturulduğunu buldum. Sadece bu dosyayı kaldırdım ve her şey yolunda gitti.

DÜZENLEME: Başka Bir Çözüm

Benzer soruda daha önce cevapladığım başka bir çözüm bu bağlantıda


12

goto Derleme Aşamaları -> İkili Kitaplıklarıyla Bağla ve bu klasör proje klasöründe bulunmadığı için hata gösteren kitaplığı kaldır


Bu benim özel sorunumu çözdü. Ben iki benzer adlandırılmış kütüphaneleri, adında biri vardı libPods-Foo BarTests.ave adlandırılmış bir tane libPods-FooBarTests.a.
Edenwaith

9

Bu, çalışma alanı yerine proje dosyasını açarsanız da olabilir. Bir gün gibi kendimi boşa harcadım.


1
mükemmel, ben de çalışma alanı kapatılırken pod güncelleme yaptım sonra pod güncelleme bittikten sonra açtı
Badr

5

Cevap için geç ama burada denediğim şeylerin listesi.Bu yüzden kimse sorunu düzeltmeye çalışmak istiyorsa tek bir yerde olacak.

  1. Geçerli mimari = armv7 armv7s
  2. Yalnızca Aktif Mimari Oluştur = HAYIR
  3. Hedef -> Derleme Ayarları -> Diğer Bağlayıcı Bayrakları = $ (devralınmış)
  4. Hedef -> Derleme Ayarları -> Kütüphane Arama Yolu = $ (devralınmış)
  5. Ürün Temizliği
  6. Terminalde Pod Güncellemesi

2

Benim durumumda bir adlandırma sorunu vardı. Kütüphanem çağrıldı ios-admob-mm-adapter.a, ancak Xcode adın lib önekiyle başlaması bekleniyor . Sadece lib'mi yeniden adlandırdımlibios-admob-mm-adapter.a ve sorunu düzelttim.

Cocoapods kullanıyorum ve hedefimin yapı ayarlarında kütüphaneleri Diğer bağlayıcı bayrakları seçeneğiyle bağlar . Bayrak şuna benziyor-l"ios-admob-mm-adapter"

Umarım başka birine yardımcı olur


2

Basitçe, GoogleAdMobAds.aproje hedefinde eksik. Benim için libAdIdAccessLibrary.alütfen ekli ekran görüntüsünü kontrol edin

resim açıklamasını buraya girin


2

Bana gelince IOS için Malzeme Kütüphanesi yüklü çünkü bu sorun oluşur. bu sorunu çözmek için

1: Hedef uygulamanızın Oluşturma Ayarları'na gidin .

2: Diğer bağlayıcı bayrakları arayın

3: Diğer bağlayıcı bayraklarını açın ve hatada belirtilen kütüphaneyi kontrol edin.

4: bu bayrağı kaldırın.

5: Temizleyin ve inşa edin.

Umarım bu sorununuzu düzeltir.


2

Böyle bir durumda ld: library not found for -{LIBRARY_NAME}kütüphane dosyaları mevcut değildir.

Uygulama hedeflerinizdeki “Derleme Aşamaları” Kütüphane Arama Yolları sekmesindeki kütüphane yolunu kontrol edin.

Kütüphane dosya (lar) ı yolu gerçek yola göre olmalıdır, örneğin projenin kökündeki dosya (lar) ınız $(PROJECT_DIR)


1

Bunun biraz eski olduğunu biliyorum, ama ben benzer bir sorunu vurdu ve 'pod güncelleme' çalıştırmak benim için bunu düzeltti. Kütüphanemdeki hata AFNetworking ile oldu ...

Pod dosyanızda açık sürümleri kullanmıyorsanız, pod güncellemesi yaparken dikkatli olun.


1

Bu hata çok garip.

Bu hatayı -ldAfnetworking ile yaşadım ve projemi yalnızca diğer yol ve işlerde kopyaladım.



1

@ raurora'nın cevabı bana doğru yönü gösterdi. "Watchkitapp Extension / lib" yoluma kütüphaneler ekledim. Bu durumda, Kütüphane Arama Yolunun bir '\' ile kaçması gerekiyordu, ancak bağlayıcı bunu anlayamadı. Sorunu düzeltmek / çözmek için, adımda boşluk içeren bir dizinde olmayacak şekilde lib yolumu bir düzey yukarı taşıdım.


1

Sadece pod dosyasını 'pod update' güncelliyorum ve normalde benim için çalışmaya başlıyor.


1

Projemde 'pod update' komutunu çalıştırmak '-lSTPopup için kütüphane bulunamadı' hatasıyla ilgili sorunumu düzeltti.

Trevor Panhorst'un cevabı:

"Pod dosyanızda açık sürümler kullanmıyorsanız, pod güncellemesi yaparken dikkatli olun."


1

Kolay çözüm. Sorunu şu şekilde çözerdim:

  1. Dizine git platforms/ios
  2. Ardından, komutu yürütün pod install

Bu kadar. Bu eksik kütüphaneyi yüklemelidir.


1
  1. Temizlenmiş Derleme Klasörü
  2. XCode yeniden başlatıldı

Uzağa gitti...


1

Bu bir için derleme hatası olduğu Static LibrarykaynaklanırStatic Linker

ld: library not found for -l<Library_name>
  1. Bu bağlantı Library not found fornoktasına bir kütüphane yolu eklemediğinizde hatayı alabilirsinizLibrary Search Paths

    ldStatic Linkerkütüphanenin yerini bulamayan anlamına gelir . Bir geliştirici olarak bağlayıcıya yardım etmeli veLibrary Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. Ayrıca .xcodeproj, Cocoapods desteğiyle yeni bir proje ( ) açtığınızda bu hatayı alabilirsiniz , çalıştırın pod update. Düzeltmek için bu projeyi kapatın ve bunun yerine bir çalışma alanı yaratın ( .xcworkspace)


0

Kütüphanede benzer hatalar bulunamadı. Sonuçta bu şekilde çözebildim

  1. Xcode Archive ile başlamadan önce, flutter build iOS kullanıldı
  2. IOS Dağıtım Hedefi, daha yüksek bir hedef iOS 11.2 olarak değiştirildi. Daha önce yukarıdaki tüm hataları veren 8.0 gibi bir şey vardı.
  3. Xcode'daki IOS dağıtım hedeflerinin Proje, Hedef ve Bölmelerde aynı olduğundan emin olun
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.