Fehler "Bibliothek nicht gefunden für" nach dem Einfügen der Anwendung in AdMob

150

Ich erhalte eine Fehlermeldung, nachdem ich meine Bewerbung in einen AdMob gestellt habe. Die App funktionierte bis heute. Der Fehler ist folgender:

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

Wie kann ich das beheben? Danke dir.

ViniciusPV
quelle
Versuchen Sie dies: stackoverflow.com/questions/1471968/…
nmh
Manchmal: Trennen Sie Ihr Gerät vom Computer und erstellen Sie zuerst das Projekt. Es werden Bibliotheken generiert und Sie können das Gerät ausführen.
TheTiger

Antworten:

114

Manchmal entfernen Sie einfach die Referenz der Bibliothek und fügen die Referenz erneut hinzu.

Abgesehen davon, dass Sie das Google Mobile Ads SDK und andere Bibliotheken von Grund auf neu hinzufügen, würde ich Ihnen empfehlen, die Bibliothekssuchpfade zu überprüfen . Es gibt Fälle, in denen Sie ein Ziel kopieren oder duplizieren. Xcode entscheidet, dass doppelte Anführungszeichen "mit einem '\' entfernt werden müssen. Entfernen Sie alle \ 's - es sollte so aussehen -

Geben Sie hier die Bildbeschreibung ein

Ich konnte den Fehler duplizieren, indem ich meinem Pfad mehrere '\' voranstellte.

Raurora
quelle
gut, nach der Pod-Installation war eine der Bibliotheken dort nicht aufgeführt. Ich weiß nicht warum, aber wenn ich diesen Bibliothekspfad hinzufüge, funktioniert es.
Warewolf
Nun, dies hat mein Problem "Bibliothek für -lART nicht gefunden" behoben und es ist wirklich unglaublich! Danke !
ZedTuX
Berücksichtigen Sie auch "Header-Suchpfade".
Luat Vu Dinh
@raurora Wie greifen Sie auf Bibliothekssuchpfade zu?
Massimo Frittelli
1
@MassimoFrittelli-Projekt> Registerkarten "Build-Einstellungen"> Suchpfade. Sie können auch die Suchoption eingeben.
Raurora
315

Ich hatte ein ähnliches Problem mit "Bibliothek nicht gefunden". Es lag jedoch daran, dass ich versehentlich die .xcodeprojDatei anstelle der .xcworkspaceDatei verwendet habe.

Kasper
quelle
4
Kann jemand bitte den Zweck von .xcodeproj und .xcworkspace erklären?
EFreak
11
Solche Dinge bringen mich dazu, das Javascript-Ökosystem zu lieben
Mark
Wie kann ich das ändern ..?
Brayan Loayza
8
xcworkspace ist, wenn Sie Cocoapods verwenden. Es ist kein Xcode-Problem, sondern die Benutzer.
Azam
1
.xcworkspace ist, wenn Sie mehr als 1 "Projekt" in Ihrer Lösung haben. Beispielsweise können Sie externe Bibliotheken (Cocoapods) oder eine eigene Bibliothek haben, die Sie in vielen Projekten verwenden.
Daniel Benedykt
86

Wählen Sie Ihr Ziel, gehen Sie "Build Phases"in "Link Binary With Libraries"Entfernen ".a"Datei dieser Bibliothek. Reinigen und bauen.

Abuzar Amin
quelle
3
Ja, seltsam genug, dass Xcode es nicht als vermisst markiert, indem er es rot
färbt
Wirklich nett!! Mein Problem war, als ich dem alten Projekt ein Benutzerframework hinzufügte. Entfernen Sie coreplot.a und funktioniert gut !!!!
Jose Pose S
66

Wenn der Fehler in Bezug auf Cocoapods wie folgt ist:

library not found for -lPod-...

Sie müssen andere Linker-Flags überprüfen und von dort entfernen.

Zusätzliche Informationen: Wenn Sie ein altes Projekt haben, das Cocoapods verwendet. Und vor kurzem mussten Sie die use_frameworks hinzufügen ! zu deiner Poddatei. Cocoapods fügen die Bibliotheken nicht mehr zu Ihren anderen Linker-Flags hinzu, da sie vererbt werden. Daher müssen Sie diese möglicherweise manuell aus den anderen Linker-Flags entfernen, die sie hinzugefügt haben, bevor Sie use_frameworks verwenden können!

hasan
quelle
1
Ich habe hier viele Flaggen. Soll ich alle oder nur die für den Pod entfernen?
Mayur Deshmukh
Wenn diese Flags ein Problem verursachen. Sie sollten sie entfernen oder behalten und die Bibliothek hinzufügen, wenn Sie sie weiterhin verwenden möchten.
Hasan
1
Ich denke, das passiert, wenn Sie versuchen, die Bibliothek zu entfernen, die von Kakaofrüchten manuell hinzugefügt wird. Der richtige Weg ist, die Bibliothek aus Ihrer Poddatei zu entfernen. Dann führen Sie die Pod-Installation erneut aus
Hasan
1
Vielen Dank!! Das war ein Hinweis für mich :). In meinem Fall hat das doppelte Ziel jedes -l "Framework" in zwei Zeilen "-l" und "Framework" unterteilt !!
Eva Madrazo
1
@ IanSteffy kombinieren Sie es einfach
Eva Madrazo
57

Für meinen Fall funktionierte Xcode 7 auch in Xcode 9.1

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

eingestellt Build Active architecture OnlyaufYes

Geben Sie hier die Bildbeschreibung ein

Ted
quelle
2
Was ist, wenn wir einen Produktionsbuild für den App Store erstellen müssen? Ich meine, es sollte NEIN für Production Build sein.
Jabbar
stimme zu, dass es NEIN für die Produktion sein sollte
Ted
2
Wird dies KEINE Auswirkung auf die Installation von Production Build haben?
Jabbar
1
Arbeitete für mich bei der Integration von Pinterest SDK auf XCode 9.2 und iOS 11.
Aakash Aggarwal
21

Wenn Sie Cocoapods verwenden, verwenden Sie die .xcworkspaceDatei anstelle der Standarddatei .xcodeproj.

ehacinom
quelle
15

Wenn der Fehler wie folgt ist

ld: Bibliothek für -lpods nicht gefunden

Ich fand heraus, dass eine Datei "libPods.a" in roter Farbe (wie fehlende Dateien) irgendwie in der Framework-Gruppe des Projekts erstellt wurde. Ich habe diese Datei einfach entfernt und alles wurde gut.

EDIT: Eine andere Lösung

Eine andere Lösung, die ich bereits in der ähnlichen Frage beantwortet habe, ist in diesem Link

Teena nath Paul
quelle
12

Gehen Sie zu Phasen erstellen -> Binär mit Bibliotheken verknüpfen und entfernen Sie die Bibliothek, die Fehler anzeigt, da diese Bibliothek nicht im Projektordner verfügbar ist

Hitesh Agarwal
quelle
Dies hat mein spezielles Problem behoben. Ich hatte zwei ähnlich benannte Bibliotheken, eine mit Namen libPods-Foo BarTests.aund eine mit Namen libPods-FooBarTests.a.
Edenwaith
9

Dies kann auch passieren, wenn Sie eine Projektdatei anstelle eines Arbeitsbereichs öffnen. Ich habe mich auf diese Weise wie ein Tag verschwendet.

kkodev
quelle
1
Hervorragend, ich habe auch ein Pod-Update durchgeführt, während ich den Arbeitsbereich geschlossen und dann geöffnet habe, nachdem das Pod-Update abgeschlossen war
Badr
5

Spät für die Antwort, aber hier ist die Liste der Dinge, die ich versucht habe. Also wird es an einem Ort sein, wenn jemand versuchen möchte, das Problem zu beheben.

  1. Gültige Architektur = armv7 armv7s
  2. Nur aktive Architektur erstellen = NEIN
  3. Ziel -> Build-Einstellungen -> Andere Linker-Flags = $ (geerbt)
  4. Ziel -> Build-Einstellungen -> Bibliothekssuchpfad = $ (geerbt)
  5. Produkt reinigen
  6. Pod Update im Terminal
reetu
quelle
2

In meinem Fall gab es ein Namensproblem. Meine Bibliothek wurde aufgerufen ios-admob-mm-adapter.a, aber Xcode erwartete, dass der Name mit dem Präfix lib beginnen sollte . Ich habe gerade meine Bibliothek umbenannt libios-admob-mm-adapter.aund das Problem behoben.

Ich verwende Cocoapods und verknüpfe Bibliotheken mit der Option Andere Linkerflags in den Build-Einstellungen meines Ziels. Die Flagge sieht aus wie-l"ios-admob-mm-adapter"

Hoffe es hilft jemand anderem

Accid Bright
quelle
2

Fehlt einfach GoogleAdMobAds.aim Projektziel. Für mich war es libAdIdAccessLibrary.aBitte überprüfen Sie den beigefügten Screenshot

Geben Sie hier die Bildbeschreibung ein

Ashvin Ajadiya
quelle
2

Bei mir tritt dieses Problem auf, weil ich Material Library for IOS installiert habe. um dieses Problem zu lösen

1: Gehen Sie zu Build Settings Ihrer Ziel-App.

2: Suche nach anderen Linker-Flags

3: Öffnen Sie die anderen Linker-Flags und suchen Sie nach der Bibliothek, die im Fehler erwähnt wird.

4: Entfernen Sie diese Flagge.

5: Reinigen und bauen.

Ich hoffe, dies behebt Ihr Problem.

Fahad Qasim
quelle
2

Im Falle eines ld: library not found for -{LIBRARY_NAME}Ereignisses, weil die Bibliotheksdatei (en) nicht vorhanden sind.

Überprüfen Sie den Bibliothekspfad auf der Registerkarte Bibliothekssuchpfade Ihrer Anwendungsziele "Phasen erstellen".

Der Pfad der Bibliotheksdatei (en) muss dem tatsächlichen Pfad entsprechen. Wenn sich Ihre Datei (en) im Stammverzeichnis des Projekts befinden, müssen Sie den Pfad wie folgt festlegen $(PROJECT_DIR)

Reza Dehnavi
quelle
1

Ich weiß, dass dies ein bisschen alt ist, aber ich habe gerade ein ähnliches Problem festgestellt und das Ausführen von "Pod Update" hat dies für mich behoben. Mein Bibliotheksfehler war mit AFNetworking ...

Seien Sie vorsichtig beim Pod-Update, wenn Sie keine expliziten Versionen in Ihrer Pod-Datei verwenden.

Trevor Panhorst
quelle
1

Dieser Fehler ist sehr seltsam.

Ich hatte diesen Fehler mit -ldAfnetworking und kopiere mein Projekt nur in einen anderen Pfad und funktioniert.

A. Trejo
quelle
1

Ich habe versucht, meine Build-Konfiguration Releasein umzubenennen Production, aber anscheinend gefällt es Kakaofrüchten nicht. Ich habe es wieder umbenannt Releaseund alles funktioniert einwandfrei.

Aymeric Bouzy Aybbyk
quelle
Sie hätten das Ziel auch in der Poddatei umbenennen können.
Romain TAILLANDIER
1

@ rauroras Antwort zeigte mir die richtige Richtung. Ich habe Bibliotheken in meinen Pfad "watchkitapp Extension / lib" aufgenommen. In diesem Fall musste der Bibliothekssuchpfad mit einem '\' maskiert werden, aber der Linker schien dies nicht zu verstehen. Um das Problem zu beheben / zu umgehen, habe ich meinen lib-Pfad um eine Ebene nach oben verschoben, sodass er sich nicht mehr in einem Verzeichnis befand, das ein Leerzeichen im Namen enthielt.

Justin Domnitz
quelle
1

Ich aktualisiere gerade die Pod-Datei 'pod update' und sie funktioniert für mich normal.

Chandni
quelle
1

Das Ausführen von 'pod update' in meinem Projekt hat mein Problem mit dem Fehler 'Bibliothek für -lSTPopup nicht gefunden' behoben.

Bemerkung zu Trevor Panhorsts Antwort:

"Seien Sie vorsichtig beim Pod-Update, wenn Sie keine expliziten Versionen in Ihrer Pod-Datei verwenden."

Juan Santos
quelle
1

Einfache Lösung. So würde ich das Problem beheben:

  1. Gehen Sie in das Verzeichnis platforms/ios
  2. Führen Sie dann den Befehl aus pod install

Das ist es. Dies sollte die fehlende Bibliothek installieren.

Manoj Shrestha
quelle
1
  1. Bereinigter Build-Ordner
  2. XCode neu gestartet

Ging weg...

batthis
quelle
1

Es ist ein Kompilierungszeitfehler für a Static Library, der durch verursacht wirdStatic Linker

ld: library not found for -l<Library_name>
  1. Sie können den Fehler erhalten, Library not found forwenn Sie keinen Bibliothekspfad zum angegeben habenLibrary Search Paths

    ldMittel, Static Linkerdie keinen Ort der Bibliothek finden können. Als Entwickler sollten Sie dem Linker helfen und auf das zeigenLibrary Search Paths

    Build Settings -> Search Paths -> Library Search Paths 
  2. Sie können diesen Fehler auch erhalten, wenn Sie zum ersten Mal ein neues Projekt ( .xcodeproj) mit Cocoapods-Unterstützung öffnen und ausführen pod update. Um dies zu beheben, schließen Sie einfach dieses Projekt und öffnen Sie stattdessen einen Arbeitsbereich ( .xcworkspace)

yoAlex5
quelle
0

Ich habe ähnliche Fehler in der Bibliothek bekommen, die nicht gefunden wurden. Letztendlich konnte ich es so lösen

  1. Bevor Sie mit Xcode Archive beginnen, verwenden Sie Flutter Build iOS
  2. Das IOS-Bereitstellungsziel wurde in ein höheres Ziel für iOS 11.2 geändert. Früher hatte ich so etwas wie 8.0, das alle oben genannten Fehler gab.
  3. Stellen Sie sicher, dass die IOS-Bereitstellungsziele in Xcode in Projekt, Ziel und Pods identisch sind
dnscode
quelle