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.




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.


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.


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.


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!


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


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.


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


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


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.


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

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


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


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.


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)


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.


1

Dieser Fehler ist sehr seltsam.

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


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.


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.


1

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


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."


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.


1
  1. Bereinigter Build-Ordner
  2. XCode neu gestartet

Ging weg...


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)


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.