2017-08-29 5 views
0

Hallo, ich habe gerade Pods verwendet, um Google-Orte mit meiner Anwendung zu implementieren, aber wenn ich versuche, meine App auszuführen, erhalte ich diesen Fehler.Google platziert mit objektiven c-Fehlern

Undefined symbols for architecture arm64: 
    "_OBJC_CLASS_$_GMSPlacesClient", referenced from: 
     objc-class-ref in ViewController.o 
     objc-class-ref in AppDelegate.o 
ld: symbol(s) not found for architecture arm64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

das ist meine pod-Datei:

source 'https://github.com/CocoaPods/Specs.git' 
project '/Users/GeorgeYoung/Desktop/Travel/Travel.xcodeproj' 
target 'Travel' do 
pod 'GooglePlaces' 
end 

Der Fehler aus der AppDelegate.m

kommen werden apears

[GMSPlacesClient provideAPIKey: @ "AIzaSyBYRDTp7U-633XB81qsBeOiVGhokPrc6_M"];

Podfile.lock:

PODS: 
    - GoogleMaps/Base (2.4.0) 
    - GooglePlaces (2.4.0): 
    - GoogleMaps/Base (= 2.4.0) 

DEPENDENCIES: 
    - GooglePlaces 

SPEC CHECKSUMS: 
    GoogleMaps: 8436ab5d1c25e36915b2f7416d0c8e3fa2e76c61 
    GooglePlaces: aafe5990fa7951e98e078761bbdaaf236d7e0c65 

PODFILE CHECKSUM: e564be8d79cfc6ae7b4a4a197ee6149eac7d65d2 

COCOAPODS: 1.3.1 

Antwort

2

Wenn Quellcode für die Bibliothek verfügbar ist, ist CocoaPods ziemlich sicher, um sicherzustellen, dass die richtige Architektur erstellt wird. In diesem Fall ist die Google Places-Bibliothek eine Pre-Build-Bibliothek, sodass das Risiko besteht, dass sie kein Segment mit der richtigen Architektur enthält. Mit dem Befehl file kann überprüft werden, ob eine Bibliothek ein Segment enthält. Die nächste Möglichkeit ist, dass die Bibliothek irgendwie nicht in den Link aufgenommen wurde. Dies kann passieren, wenn Sie das Xcode-Projekt anstelle des von CocoaPods erstellten Xcode-Arbeitsbereichs öffnen. Überprüfen Sie, ob der Arbeitsbereich tatsächlich verwendet wird und ob die Pod-Bibliothek verknüpft ist, um dieses Problem zu beheben. Schließlich, wenn alles andere fehlschlägt (und wieder scheint CocoaPods normalerweise das richtige zu bekommen), vergewissere dich, dass die Erstellungseinstellung "Andere Linker-Flags" die Einstellung -ObjC enthält. Dies erfordert das Laden einiger Objective-C-Symbole aus statischen Bibliotheken.

Also zusammenfassend

  1. prüfen vorkompilierte Bibliotheken enthalten die benötigte Scheibe
  2. Achten Sie darauf, den Arbeitsbereich verwenden nicht das Projekt
  3. die Pod-Bibliothek Vergewissern Sie sich in der Verbindung enthalten ist
  4. Stellen Sie sicher, dass -ObjC in die 'Other Linker Flags'
0

Sie sind entweder nicht gegen die Bibliothek verknüpft, die GMSPlacesClient enthält oder die Bibliothek mit der falschen Architektur gebaut.

+0

Wie behebe ich das aber? –

+0

Ja ich bin sicher, dass ich versehentlich in der xcodeproj arbeitete, dann wechselte ich in xcworkspace, weil ich dachte, das war der Grund, warum ich den Fehler bekam. –

0

angegeben ist Ändern Sie Ihren Pod f ile:

pod 'GooglePlaces'

pod 'GooglePlacePicker'

pod 'Googlemaps'

Verwandte Themen