Framework nicht gefunden GoogleToolboxForMac

82

Nachdem ich meine Firebase über "Pod Update" aktualisiert habe, wurde folgende Fehlermeldung angezeigt:

ld: warning: directory not found for option '-F/Users/bennysantoso/Library/Developer/Xcode/DerivedData/FCM-atfcxuircoryufazlomgwfgmvaqm/Build/Products/Debug-iphonesimulator/GoogleToolboxForMac'
ld: framework not found GoogleToolboxForMac
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Hier mein Podfile:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'

target 'BB' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BB

  target 'BBTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'BBUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

Kennt jemand diesen Fehler?

Ich suche nach Beziehungen zwischen GoogleToolboxForMac und Firebase, erhalte aber nur ein paar Informationen.

Zu Ihrer Information, ich benutze Swift 2.3 und Firebase 3.8.0.

Ich bin Ihnen für jede Hilfe dankbar. Vielen Dank!

bennysantoso
quelle
2
Das gleiche für mich .. kann jemand helfen? Ich habe den ganzen Tag daran gearbeitet: / Ich stelle fest, dass ältere Versionen derselben Bibliothek GoogleToolboxForMac nicht verwenden und perfekt funktionieren :(
Santi Iglesias
Aus anderen Stackoverflow-Antworten habe ich versucht, meiner Pod-Datei Folgendes hinzuzufügen, aber es funktioniert immer noch nicht: Pod 'Google / Analytics' Pod 'Firebase / Core' Pod 'Firebase / AdMob' # Es wurde versucht, den fehlenden Fehler-Pod 'Firebase / Messaging von GoogleToolboxForMac zu beheben 'pod' GoogleToolboxForMac / Logger 'pod' GoogleToolboxForMac ',' ~> 2.1 '
Charlie Seligman
Erstens ist das Format Ihres Podfiles alt (Q4 / 2016). Entfernen Sie es und erstellen Sie ein neues mit 'pod init'. Verwenden Sie den Arbeitsbereich nicht xcodeproj, wie unten vorgeschlagen.
igraczech

Antworten:

167

Ich hatte den gleichen Fehler. Sobald Sie die Pods installiert haben, wird die folgende Meldung angezeigt.

[!] Bitte schließen Sie alle aktuellen Xcode-Sitzungen und verwenden Sie ab sofort MyApp.xcworkspace für dieses Projekt.

Ich habe dies zum ersten Mal nicht bemerkt und versucht, das Projekt mit der regulären xcodeproj-Datei zu erstellen. Nachdem ich diese Nachricht gesehen hatte, öffnete ich das richtige Projekt und es funktionierte gut.

Sobald Sie dieses Projekt öffnen, werden Sie feststellen, dass Sie zwei Teilprojekte haben. Eines wäre Ihr Projekt und ein anderes wäre das Pods-Projekt.

Izaaz Yunus
quelle
40

Framework nicht gefunden

Bei der Verwendung von Pods tritt normalerweise dieses Problem auf.

Dafür gibt es zwei Hauptgründe

  1. Wenn wir die .xcodeproj- Datei anstelle von .xcworkspace öffnen, wie von izaaz-yunus in dieser Antwort erwähnt

  2. Wenn Nur aktive Architektur erstellen in den Build-Einstellungen auf Ja gesetzt ist

    Dies gilt sowohl für das Projektziel als auch für alle Ziele im Pod-Projekt

Screenshot des Hauptprojekts Setzen Sie Build Active Architecture Only auf No

Screenshot des Pod-Projekts Geben Sie hier die Bildbeschreibung ein

  1. Wählen Sie Build Settings (des Hauptprojekts, Pod-Projekt beide).
  2. Wählen Sie jedes Ziel einzeln aus
  3. Setzen Sie Build Active Architectures für jedes Ziel auf No

Reinigen Sie Ihr Projekt und bauen Sie es neu auf.

Vinay Kumar
quelle
Gibt es einen Tippfehler, bei # 2 sagst du "Ja", aber bei Bild zeigt "Nein", danke @Vinay Kumar
Greenridinghood
# 2 sagt, was das Problem verursacht und das Bild ist, wie die Einstellungen aussehen sollten, damit das Problem behoben werden kann
Vinay Kumar
Alle anderen Lösungen funktionieren bei mir nicht, außer: Setzen Sie Build Active Architecture Only für alle Pod-Bibliotheken auf NO
tamtoum1987
18

In meinem Fall sind alle Integrationen gut gemacht und haben auch so oft versucht, den Pod zu entfernen und neu zu installieren, aber keinen Erfolg gehabt.

Versuchen Sie es schließlich mit dem folgenden Schritt

Projekt-> Schemata verwalten -> Kontrollkästchen "Pods-MyProjectName" aktivieren

Und Erfolg haben.

iPatel
quelle
Ich habe diesen Fehler beim Ausführen im Simulator erhalten, aber nicht auf einem tatsächlichen Gerät.
mpwhitt
Dies funktionierte für mich, aber ich musste das Pods-Projekt auch explizit erstellen, bevor ich versuchte, mein Projekt zu erstellen. Keine Ahnung warum.
pieSquared
1
Ich habe dies getan, aber ich kann die App nicht auf meinem Simulator ausführen?
Drailan John Terrible
2
Nachdem ich den "Pods-ProjectName" erstellt hatte, konnte ich das eigentliche Projekt auf meinem Gerät ausführen.
Tim Baas
14

GoogleToolboxForMac ist eine Abhängigkeit von Firebase / Messaging. Details in der Podspec . Wenn Sie ein "Pod-Update" durchführen, sollten Cocoapods Ihren Arbeitsbereich so einrichten, dass GoogleToolboxForMac erstellt und verknüpft wird.

Es hört sich so an, als ob sich etwas an Ihrem Arbeitsbereich in einem schlechten Zustand befindet. Hilft Produkt -> Reinigen? Was ist mit dem Löschen abgeleiteter Daten und des ModuleCache (Xcode -> Einstellungen -> Speicherorte -> abgeleitete Daten)?

Es sollte nicht notwendig sein, aber Sie können auch versuchen, Ihrem Podfile explizit den Pod 'GoogleToolboxForMac / Logger' hinzuzufügen.

Paul Beusterien
quelle
Nein, das hat bei mir nicht funktioniert ... durch Öffnen des Projekts vom Arbeitsbereich aus funktioniert!
Jayprakash Dubey
2
@ JayprakashDubey Bei dieser Antwort wird davon ausgegangen, dass Sie vom Arbeitsbereich aus starten. Siehe den ersten Absatz. Die Antwort löst ein anderes Szenario, das zum gleichen Symptom führt.
Paul Beusterien
1
@PaulBeusterien Ich habe alles versucht, was du hier gesagt hast, aber ich kann trotzdem nicht bauen.
Drailan John Terrible
6
es funktioniert
1. Wählen Sie Ihr Projekt in Verzeichnissen aus
2. Wählen Sie Allgemein
3. Fügen Sie "GoogleToolboxForMac.framework" zu den verknüpften "Frameworks und Bibliotheken" hinzu.
kiran pm
quelle
Das Verknüpfen der Bibliothek hat es für mich explizit gelöst. Danke!
Liquinaut
5

Dies wurde durch Hinzufügen von $ (geerbt) in den Build-Einstellungen -> Suche nach LIBRARY_SEARCH_PATHS behoben.

Dies ist verständlich, da beim Aktualisieren Ihrer Pod-Datei für die neuesten Versionen von Bibliotheken, von denen Ihr Projekt abhängt, die Debug-Ausgabe angibt, wo Sie alle $ (geerbten) Flags hinzufügen müssen: LIBRARY_SEARCH_PATHS OTHER_LD_FLAGS GCC_PREPROCESSOR_DEFINITIONS

TomV
quelle
Wo soll das $ (geerbt) abgelegt werden? Soll ich + drücken und dann $ (geerbt) eingeben?
Drailan John Terrible
Ja, Sie können + drücken und $ (geerbt)
eingeben
Dies hat mein Problem behoben! Vielen Dank, dass Sie @TomV
Spettacolo83
2

Gehen Sie zu: target -> Build Settings -> Other Linker Flags -> remove framework "GoogleToolboxforMAC"und erstellen Sie das Projekt.

Deblina Das
quelle
1

Ich hatte das gleiche Problem, als ich versuchte, es auf meinem Gerät auszuführen. Auf dem Simulator funktionierte es gut. Ich habe einige der oben genannten Versuche unternommen, aber es hat bei mir nicht funktioniert. Ich habe überprüft, ob ich .xcworkspaceanstelle der .xcodeprojDatei arbeite , also habe ich diese ausprobiert. Befolgen Sie diese Schritte, um:

  1. Öffnen Sie das Xcode-Projekt (Cocoapods-Projekt) mit der Datei .xc ....
  2. Wählen Sie im Projektnavigator das Projekt Pods (blaues Symbol links).
  3. Stellen Sie unter Ziele sicher, dass Pods-Projektname (blaues Symbol) ausgewählt ist.
  4. Navigieren Sie zu Build Settings und legen Sie das iOS-Bereitstellungsziel fest, auf welcher iOS-Version Sie das Projekt ausführen möchten.

Hinweis: Es ist dasselbe wie das, was Sie eingestellt haben Project->Targets->Deployment info->Deployment Target.

Vielleicht profitiert jemand davon.

Einfache Maurya
quelle
1

Wenn in Ihrem XCode derselbe Fehler auftritt, gehen Sie zu:

Ihr Projekt > Ihr Ziel > Scrollen Sie nach unten zu Linked Framework und Bibliotheken und prüfen Sie, ob der Bibliothekseintrag abgeblendet ist:

Screenshot des XCode Linked Framework und der Bibliotheken

Wenn ja, entfernen Sie es und fügen Sie es erneut hinzu. In meinem Fall hatte ich doppelte Einträge und einer davon wurde abgeblendet (wenn XCode sie nicht auf der Festplatte finden kann).

Luiz Dias
quelle
0

Das Projekt, das ich nach der Pod-Installation erstellen wollte, wurde geschlossen, dann der .workspace geöffnet und dann wurde alles perfekt erstellt.

Satheeshwaran
quelle
0

Öffnen Sie den Arbeitsbereich your-project.xcwork in Ihrem Projektziel.

1) Öffnen Sie das Terminal -> 2) $ cd / project_destination -> 3) $ open your-project.xcworkspace

oder öffnen Sie einfach die Datei im Finder

Radek Stašek
quelle
0

Stellen Sie sicher, dass Ihre "Build Active Architecture-Einstellungen" für Ihr Projektziel und den Pod identisch sind. Das Setzen von NEIN in beiden Fällen hat mein Problem behoben.

Harte K.
quelle
0

Mein Problem war, dass ich ein / bin / sh-Skript hatte, das bestimmte Pods kopierte, die es nicht gab. Dies war einer von ihnen. Durch Entfernen des Skripts wurde das Build-Problem behoben.

Armin
quelle
0

-Ich suche auf der Festplatte nach den GoogleToolboxForMac-Dateien, gefunden in: / Users / Marco / Documents / iosapps / BomRetiro / Bom Retiro / Pods / Target-Support-Dateien

  • Und dann habe ich die Dateien in diesen Ordner kopiert: / Users / YourHomeFolder / Library / Developer / Xcode / DerivedData / Bom_Retiro-bsfjbazzzuwmuidqurdmjvdtnnsb / Build / Products

Und dann ist für mich gelöst, das Projekt usinf .xcworkspace-Datei zu öffnen.

Bosozoku
quelle
0

Für diejenigen, die nach all dem noch Probleme haben. Ich arbeite an einem Cordova-Projekt und das Problem trat plötzlich nach dem Upgrade auf XCode 11.5 auf.

Schließlich konnte ich es lösen, indem ich die Datei pods.json im Projektstamm öffnete und den Eintrag in "Bibliotheken" entfernte, der zu "FirebaseMessaging" gehört. Wir haben das nicht benutzt und ich weiß nicht, wie es dahin gekommen ist. Außerdem habe ich die "Build-Einstellung" -> "Nur aktive Architektur erstellen" überall auf "Nein" geändert.

Danach habe ich die .xcworkspace-Datei erneut geöffnet und der Build wurde durchlaufen.

SLi
quelle
-1

Swift 5 Einfache Antwort

Shift+Alt+Cmd+K  //Clean the project and Run again! 
//if not work restart Xcode and again clean it 
//Its will work happy coding
Shakeel Ahmed
quelle
-6
    Friends, you must be confused with the exact result, as i was. So, i feel to share the 
screenshot that might be helpful. We all had to be careful that we need to change the flag for property **"Build Active architecture Only"** for **pod target** to **NO** And build, it would not show the linking error.

    See the attached screenshot.
    Screen Shot 1, Screen Shot 2, Screen Shot 3
    [Select Pods][1]
    [Select Targets in the pod][2]
    [Change flag to No][3]


  [1]: https://i.stack.imgur.com/E7mjX.png
  [2]: https://i.stack.imgur.com/wCwET.png
  [3]: https://i.stack.imgur.com/KVGKM.png
Ravi Kant
quelle
Posten Sie keine ganzen Screenshots, bitte geben Sie nur einen Inline-Teil an, mein Freund.
igraczech
Dies funktionierte, obwohl es besser wäre, die Lösungen zu erklären, als die Screenshots zu veröffentlichen. Die Lösung besteht darin, den gültigen Bogen nur an den Projekt- und Pods-Zielen in "Nein" zu ändern.
Ignacio Barrea