Kesalahan "pustaka tidak ditemukan" setelah meletakkan aplikasi di AdMob


150

Saya mendapatkan kesalahan setelah memasukkan aplikasi ke AdMob. Aplikasi ini berfungsi hingga hari ini. Kesalahannya adalah sebagai berikut:

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

Bagaimana saya bisa memperbaikinya? Terima kasih.




Terkadang: Cabut perangkat Anda dan bangun proyek terlebih dahulu. Ini akan menghasilkan perpustakaan dan kemudian Anda akan dapat berjalan di perangkat.
TheTiger

Jawaban:


114

Terkadang Anda hanya menghapus referensi perpustakaan dan menambahkan referensi lagi.

Selain menambahkan Google Mobile Ads SDK dan perpustakaan lain lagi dari awal, saya akan merekomendasikan Anda memeriksa Jalur Pencarian Perpustakaan . Ada beberapa contoh ketika Anda menyalin atau menggandakan target, Xcode memutuskan bahwa ia perlu keluar dari tanda kutip ganda "dengan '\'. Pastikan Anda menghapus semua \ - itu akan terlihat seperti ini -

masukkan deskripsi gambar di sini

Saya dapat menduplikasi kesalahan, dengan melakukan awalan jalur saya dengan beberapa '\'.


bagus, setelah menginstal pod, salah satu perpustakaan tidak terdaftar di sana. Saya tidak tahu mengapa tetapi menambahkan bahwa jalur perpustakaan membuatnya berfungsi.
Warewolf

Nah ini memperbaiki masalah saya "Perpustakaan tidak ditemukan untuk -lART" dan itu benar-benar luar biasa! Terima kasih !
ZedTuX

Pertimbangkan "Jalur Pencarian Header" juga.
Luat Vu Dinh

@raurora Bagaimana Anda mengakses jalur pencarian perpustakaan?
Massimo Frittelli

1
@MassimoFrittelli Project> Bangun Pengaturan tab> Jalur Pencarian. Anda juga bisa mengetikkan opsi pencarian.
raurora

315

Saya memiliki masalah "perpustakaan tidak ditemukan" yang serupa. Namun itu karena saya tidak sengaja menggunakan .xcodeprojfile, bukan .xcworkspacefile.


4
Adakah yang bisa menjelaskan tujuan .xcodeproj dan .xcworkspace?
EFreak

11
Hal-hal seperti ini membuat saya menyukai ekosistem Javascript
Mark

Bagaimana saya bisa mengubahnya ..?
Brayan Loayza

8
xcworkspace adalah saat Anda menggunakan Cocoapods. Ini bukan masalah Xcode, tetapi para pengguna.
Azam

1
.xcworkspace adalah ketika Anda memiliki lebih dari 1 "proyek" di dalam solusi Anda. Misalnya Anda dapat memiliki perpustakaan eksternal (cocoapods) atau perpustakaan Anda sendiri yang Anda gunakan di banyak proyek.
Daniel Benedykt

86

Pilih Target Anda, pergi ke "Build Phases"dalam "Link Binary With Libraries"menghapus ".a"file perpustakaan itu. Bersih dan Bangun.


3
Yup, cukup aneh bahwa Xcode tidak menandainya hilang dengan mewarnai merah
brainray

Benar-benar bagus!! masalah saya adalah ketika saya menambahkan kerangka kerja pengguna ke proyek lama. Hapus coreplot.a dan berfungsi dengan baik !!!!
Jose Pose S

66

Jika kesalahan terkait dengan Cocoapods adalah sebagai berikut:

library not found for -lPod-...

Anda perlu memeriksa Bendera Penghubung Lainnya dan menghapusnya dari sana.

Informasi Tambahan: Jika Anda memiliki proyek lama yang menggunakan cocoapods. Dan baru-baru ini Anda perlu menambahkan use_frameworks! ke podfile Anda. cocoapods tidak akan menambahkan pustaka ke Flager Linker Lain Anda lagi karena itu adalah warisan. Oleh karena itu, Anda mungkin perlu menghapusnya secara manual dari flag linker lain yang ditambahkan sebelum menggunakan use_frameworks!


1
Saya punya banyak bendera di sini, haruskah saya menghapus semua atau hanya satu untuk Pod?
Mayur Deshmukh

Jika bendera itu menyebabkan masalah. Anda harus menghapusnya atau menyimpannya dan menambahkan perpustakaan jika Anda masih ingin menggunakannya.
hasan

1
Saya kira itu terjadi ketika Anda mencoba untuk menghapus perpustakaan yang ditambahkan oleh kakao secara manual. Cara yang benar adalah menghapus perpustakaan dari podfile Anda. maka Anda menjalankan pod install lagi
hasan

1
Terima kasih!! Ini adalah petunjuk bagi saya :). Dalam kasus saya, target duplikat telah membagi setiap -l "framework" menjadi dua baris "-l" dan "framework" !!
Eva Madrazo

1
@IanSteffy baru saja menggabungkannya
Eva Madrazo

57

Untuk kasus saya Xcode 7 , juga bekerja di Xcode 9.1

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

diatur Build Active architecture OnlykeYes

masukkan deskripsi gambar di sini


2
Bagaimana ketika kita perlu membuat build Produksi untuk App Store? Maksud saya itu harus TIDAK untuk Bangun Produksi.
Jabbar

setuju itu TIDAK untuk produksi
Ted

2
Apakah ini TIDAK berpengaruh pada Instalasi Pembuatan Produksi?
Jabbar

1
Bekerja untuk saya saat mengintegrasikan SDK Pinterest di XCode 9.2 dan iOS 11.
Aakash Aggarwal

21

Ini terjadi jika Anda menggunakan cocoapods, gunakan .xcworkspacefile bukan .xcodeprojfile default .


15

Jika errornya seperti berikut

ld: perpustakaan tidak ditemukan untuk -lpods

Saya menemukan bahwa file "libPods.a" yang berwarna merah (seperti file yang hilang) entah bagaimana dibuat dalam grup Framework proyek. Saya hanya cukup menghapus file itu dan semuanya baik-baik saja.

EDIT: Solusi Lain

Solusi lain yang telah saya jawab dalam pertanyaan serupa ada di tautan ini


12

goto Build Phases -> Tautan Biner Dengan Perpustakaan dan hapus perpustakaan yang menunjukkan kesalahan karena perpustakaan itu tidak tersedia di folder proyek


Ini memperbaiki masalah khusus saya. Saya memiliki dua perpustakaan yang bernama sama, satu bernama libPods-Foo BarTests.adan satu lagi bernama libPods-FooBarTests.a.
edenwaith

9

Ini juga dapat terjadi jika Anda membuka file proyek alih-alih ruang kerja. Saya telah menyia-nyiakan seperti hari ini dengan cara ini.


1
luar biasa, saya juga melakukan pembaruan pod sambil menutup ruang kerja lalu membukanya setelah pembaruan pod selesai
Badr

5

Terlambat untuk jawabannya tetapi di sini adalah daftar hal-hal yang saya coba. Jadi akan ada di satu tempat jika ada yang ingin mencoba untuk memperbaiki masalah ini.

  1. Arsitektur yang valid = armv7 armv7s
  2. Bangun Arsitektur Aktif saja = TIDAK
  3. Target -> Pengaturan Bangun -> Bendera Tautan Lainnya = $ (diwariskan)
  4. Target -> Pengaturan Bangun -> Jalur Pencarian Perpustakaan = $ (diwariskan)
  5. Produk Bersih
  6. Pembaruan Pod di terminal

2

Dalam kasus saya ada masalah penamaan. Pustaka saya dipanggil ios-admob-mm-adapter.a, tetapi Xcode diharapkan, bahwa nama tersebut harus dimulai dengan lib awalan . Saya baru saja mengganti nama lib saya menjadilibios-admob-mm-adapter.a dan memperbaiki masalah ini.

Saya menggunakan Cocoapods, dan menautkan pustaka dengan opsi panji tautan lainnya dalam membangun pengaturan target saya. Bendera itu seperti-l"ios-admob-mm-adapter"

Semoga ini bisa membantu orang lain


2

Sederhananya, GoogleAdMobAds.atidak ada target proyek. Bagi saya itu libAdIdAccessLibrary.aHarap periksa tangkapan layar terlampir

masukkan deskripsi gambar di sini


2

Bagi saya masalah ini terjadi karena saya menginstal Perpustakaan Bahan untuk iOS. untuk mengatasi masalah ini

1: Buka Pengaturan Bangun aplikasi target Anda.

2: Cari bendera penghubung lainnya

3: Buka bendera penghubung lainnya dan periksa perpustakaan yang disebutkan dalam kesalahan.

4: hapus bendera itu.

5: Bersihkan dan bangun.

Saya harap ini memperbaiki masalah Anda.


2

Dalam kasus ld: library not found for -{LIBRARY_NAME}terjadi karena file perpustakaan tidak ada.

Periksa jalur pustaka pada tab Jalur Pustaka Pencarian Perpustakaan "Membangun Fase" target aplikasi Anda.

Path file library harus sesuai dengan path nyata misalnya jika file Anda di root proyek Anda harus menetapkan path seperti $(PROJECT_DIR)


1

Saya tahu ini agak lama, tapi saya baru saja mengalami masalah serupa dan menjalankan 'pembaruan pod' memperbaiki ini untuk saya. Kesalahan perpustakaan saya adalah dengan AFNetworking ...

Berhati-hatilah dalam melakukan pembaruan pod jika Anda tidak menggunakan versi eksplisit dalam file pod Anda.


1

Kesalahan ini sangat aneh.

Saya mengalami kesalahan ini dengan -ldAfnetworking dan saya hanya menyalin proyek saya di jalur dan pekerjaan lain.


1

Aku mencoba mengubah nama saya konfigurasi membangun Releaseuntuk Production, tapi ternyata buah kakao tidak seperti itu. Saya menamainya kembali menjadi Release, dan semuanya dibangun dengan baik.


Anda juga bisa mengganti nama target di podfile.
Romain TAILLANDIER

1

Jawaban @ raurora menunjuk saya ke arah yang benar. Saya menyertakan perpustakaan di jalur "watchkitapp Extension / lib" saya. Dalam hal ini, Jalur Pencarian Perpustakaan perlu diloloskan dengan '\', tetapi tautan tampaknya tidak memahami hal ini. Untuk memperbaiki / mengatasi masalah ini, saya memindahkan lib path saya ke atas satu level sehingga tidak lagi ada di direktori yang berisi spasi di namanya.


1

Saya baru saja memperbarui file pod 'pembaruan pod' dan mulai bekerja untuk saya secara normal.


1

Menjalankan 'pembaruan pod' di proyek saya memperbaiki masalah saya dengan kesalahan 'perpustakaan tidak ditemukan untuk -lSTPopup'.

Komentar Trevor Panhorst dari komentar:

"Berhati-hatilah dalam melakukan pembaruan pod jika Anda tidak menggunakan versi eksplisit dalam file pod Anda."


1

Solusi mudah. Inilah cara saya memperbaiki masalah ini:

  1. Pergi ke direktori platforms/ios
  2. Kemudian, jalankan perintah pod install

Itu dia. Ini harus menginstal pustaka yang hilang.


1
  1. Folder Build yang Dibersihkan
  2. XCode yang direstart

Pergi...


1

Ini adalah kesalahan waktu kompilasi untuk Static Libraryyang disebabkan olehStatic Linker

ld: library not found for -l<Library_name>
  1. Anda bisa mendapatkan kesalahan Library not found forsaat Anda belum menyertakan jalur pustaka keLibrary Search Paths

    ldberarti Static Linkeryang tidak dapat menemukan lokasi perpustakaan. Sebagai pengembang, Anda harus membantu penghubung dan menunjukLibrary Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. Anda juga bisa mendapatkan kesalahan ini jika Anda pertama kali membuka proyek baru ( .xcodeproj) dengan dukungan Cocoapods, jalankan pod update. Untuk memperbaikinya cukup tutup proyek ini dan buka buat ruang kerja sebagai gantinya ( .xcworkspace)


0

Saya mendapatkan bug serupa di perpustakaan tidak ditemukan. Pada akhirnya ini adalah bagaimana saya bisa menyelesaikannya

  1. Sebelum memulai dengan Xcode Archive, digunakan flutter build iOS
  2. Mengubah Target Penempatan iOS ke target yang lebih tinggi iOS 11.2. Sebelumnya saya memiliki sesuatu seperti 8.0 yang memberikan semua kesalahan di atas.
  3. Pastikan bahwa target penyebaran iOS di Xcode sama di Project, Target dan Pods
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.