2017-08-29 47 views
0

你好,我只是用我的應用程序實現谷歌地方的豆莢,但當我嘗試運行我的應用程序時,我得到這個錯誤。谷歌與目標c錯誤的地方

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) 

這是我的POD文件:

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

錯誤apears要從AppDelegate.m

[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 

回答

2

如果庫的源代碼可用,CocoaPods在確保構建正確的架構方面相當不錯。在這種情況下,Google商家信息庫是一個預先構建的庫,因此存在風險,因爲它沒有包含正確體系結構的切片。 file命令可用於檢查庫是否包含切片。下一個可能性是,圖書館不在鏈接中。如果您打開Xcode項目而不是由CocoaPods創建的Xcode工作區,就會發生這種情況。檢查確實正在使用工作區並且正在鏈接Pod庫可用於消除此問題。最後,如果一切都失敗了(再次CocoaPods通常似乎得到這個正確的),確保'其他鏈接器標誌'的構建設置包含-ObjC設置。這需要強制從靜態庫中加載一些Objective-C符號。

因此,在總結

  1. 檢查預建庫包含所需的片
  2. 確保您使用的工作空間而不是項目
  3. 確保波德庫包含在鏈接
  4. 確保-ObjC在 中指定'其他鏈接器標誌'
0

你要麼不鏈接對包含GMSPlacesClient或您構建的庫與錯誤的架構庫。

+0

如何解決,雖然? –

+0

是的,我確定我不小心在xcodeproj中工作,然後我切換到xcworkspace,因爲我認爲這就是爲什麼我得到錯誤。 –

0

修改您的pod f ILE:

莢 'GooglePlaces'

莢 'GooglePlacePicker'

莢 '谷歌地圖'