【问题标题】:Google Analytics doesn't work on new iOS project谷歌分析不适用于新的 iOS 项目
【发布时间】:2014-02-25 08:48:29
【问题描述】:

我创建了一个新的 iOS 项目,并按照官方说明添加了 Google Analytics 支持。

我已添加到框架中:

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

【问题讨论】:

  • 你添加了所有需要的框架吗?
  • 阿曼,没用。
  • Gaurav,需要什么框架?我已经按照官方和非官方的说明添加了所有这些!
  • 从此错误:“_OBJC_CLASS_$_NSFetchRequest”,引用自:libGoogleAnalyticsServices.a(GAIDataStore.o) 中的 objc-class-ref,“_OBJC_CLASS_$_NSManagedObjectContext”,引用自:...看起来像你错过了添加核心数据框架..

标签: ios iphone google-analytics


【解决方案1】:

来自谷歌分析developer page

Google 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。

希望有帮助!

【讨论】:

  • @Altaveron 你能运行我提到的命令并检查谷歌分析库支持哪些架构吗?可能不支持armv7
  • armv7 armv7s i386 x86_64 arm64
  • @Altaveron 是的,它确实支持。
  • @Altaveron 您能否尝试构建与 Google Analytics sdk 捆绑在一起的 CuteAnimals 示例项目?
  • @Altaveron 哦,太好了。很高兴我能帮上忙。
【解决方案2】:

谢谢大家!以下步骤帮助了我:

  1. 删除CoreData.framework
  2. 再次添加CoreData.framework
现在支持

arm64。感谢 Amar。

现在我应该修正最后一个警告:

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

发生这种情况是因为我在不同用户的项目上工作。

【讨论】:

    【解决方案3】:

    您应该将libsqlite3.0.dylib文件添加到您的框架中。

    为此,在项目目标下,在常规选项卡上,您将找到“链接框架和库”,只需选择“+”按钮,然后从那里添加框架

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 2018-03-21
      • 1970-01-01
      • 2017-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多