2014-02-25 43 views
18

我已經創建了一個新的iOS項目並按照官方說明添加了Google Analytics支持。谷歌分析不適用於新的iOS項目

我已經加入到框架:

libGoogleAnalyticsServices.a 
AdSupport.framework 
CoreData.framework 
SystemConfiguration.framework 
libz.dylib 

不過,這並不與錯誤的工作:

ld: warning: directory not found for option '-L/Users/.../Sources/GoogleAnalytics' 
Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_NSManagedObjectModel", referenced from: 
     objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o) 
    "_OBJC_CLASS_$_NSAttributeDescription", referenced from: 
     objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o) 
    "_OBJC_CLASS_$_NSEntityDescription", referenced from: 
     objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o) 
     objc-class-ref in libGoogleAnalyticsServices.a(GAICoreDataUtil.o) 
    "_OBJC_CLASS_$_NSPersistentStoreCoordinator", referenced from: 
     objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o) 
    "_OBJC_CLASS_$_NSFetchRequest", referenced from: 
     objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o) 
    "_OBJC_CLASS_$_NSManagedObjectContext", referenced from: 
     objc-class-ref in libGoogleAnalyticsServices.a(GAIDataStore.o) 
    "_NSSQLiteErrorDomain", referenced from: 
     -[GAIDataStore performBlockAndWait:withError:] in libGoogleAnalyticsServices.a(GAIDataStore.o) 
    "_NSSQLiteStoreType", referenced from: 
     -[GAIDataStore coordinatorWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o) 
    "_NSOverwriteMergePolicy", referenced from: 
     -[GAIDataStore contextWithModel:URL:] in libGoogleAnalyticsServices.a(GAIDataStore.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我怎樣才能解決呢?它是否支持arm64

+0

CHK此http添加框架:/ /stackoverflow.com/questions/6429494/undefined-symbols-for-architecture-armv7 –

+1

您是否添加了所有require框架? – Gaurav

+0

阿曼,它沒有幫助。 – Dmitry

回答

11

謝謝大家!以下步驟對我有幫助:

  1. 刪除CoreData.framework
  2. 再次添加CoreData.framework

arm64現在支持。感謝Amar。現在

我應該可以解決最後的警告:

ld: warning: directory not found for option '-L/Users/.../Sources/GoogleAnalytics' 

這是因爲我對不同用戶的項目。

44

從谷歌Analytics(分析)developer page

的谷歌Analytics(分析)SDK使用CoreData和SystemConfiguration框架,因此你需要將以下添加到您的應用目標的鏈接庫:

  • libGoogleAnalyticsServices.a
  • AdSupport.framework
  • CoreData.framework
  • SystemConfiguration.framework
  • libz.dylib

看起來你錯過了CoreData.framework


在GA庫上運行lipo -info命令。

xcrun -sdk iphoneos lipo -info libGoogleAnalyticsServices.a 

給出結果,

Architectures in the fat file: libGoogleAnalyticsServices.a are: armv7 armv7s i386 x86_64 arm64 

所以它支持arm64。

希望有幫助!

+0

@Altaveron你可以運行我提到的命令並查看谷歌分析庫支持哪些體系結構?也許它不支持'armv7'。 – Amar

+0

armv7 armv7s i386 x86_64 arm64 – Dmitry

+0

@Altaveron是的,它支持。 – Amar

4

您應該將libsqlite3.0.dylib文件添加到您的框架。

要做到這一點,該項目的目標下,在常規選項卡上,你會發現「鏈接的框架和庫」,只需選擇「+」按鈕,並從那裏