手动添加 Segment iOS 框架时出错

Getting error when adding Segment iOS framework manually

我正在尝试在我的应用程序中手动添加 segmentio iOS 框架。当我构建项目时,它以以下错误结束,"Undefined symbols for architecture i386" 和日志。

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_Amplitude", referenced from:
      objc-class-ref in Analytics(SEGAmplitudeIntegration.o)
  "_OBJC_CLASS_$_AppsFlyerTracker", referenced from:
      objc-class-ref in Analytics(SEGAppsFlyerIntegration.o)
  "_OBJC_CLASS_$_Bugsnag", referenced from:
      objc-class-ref in Analytics(SEGBugsnagIntegration.o)
  "_OBJC_CLASS_$_Countly", referenced from:
      objc-class-ref in Analytics(SEGCountlyIntegration.o)
  "_OBJC_CLASS_$_Crittercism", referenced from:
      objc-class-ref in Analytics(SEGCrittercismIntegration.o)
  "_OBJC_CLASS_$_CrittercismConfig", referenced from:
      objc-class-ref in Analytics(SEGCrittercismIntegration.o)
  "_OBJC_CLASS_$_Flurry", referenced from:
      objc-class-ref in Analytics(SEGFlurryIntegration.o)
  "_OBJC_CLASS_$_GAI", referenced from:
      objc-class-ref in Analytics(SEGGoogleAnalyticsIntegration.o)
  "_OBJC_CLASS_$_GAIDictionaryBuilder", referenced from:
      objc-class-ref in Analytics(SEGGoogleAnalyticsIntegration.o)
  "_OBJC_CLASS_$_KahunaAnalytics", referenced from:
      objc-class-ref in Analytics(SEGKahunaIntegration.o)
  "_OBJC_CLASS_$_Localytics", referenced from:
      objc-class-ref in Analytics(SEGLocalyticsIntegration.o)
  "_OBJC_CLASS_$_Mixpanel", referenced from:
      objc-class-ref in Analytics(SEGMixpanelIntegration.o)
  "_OBJC_CLASS_$_QuantcastMeasurement", referenced from:
      objc-class-ref in Analytics(SEGQuantcastIntegration.o)
  "_OBJC_CLASS_$_TRVSDictionaryWithCaseInsensitivity", referenced from:
      objc-class-ref in Analytics(SEGAnalyticsIntegration.o)
  "_OBJC_CLASS_$_TSConfig", referenced from:
      objc-class-ref in Analytics(SEGTapstreamIntegration.o)
  "_OBJC_CLASS_$_TSEvent", referenced from:
      objc-class-ref in Analytics(SEGTapstreamIntegration.o)
  "_OBJC_CLASS_$_TSTapstream", referenced from:
      objc-class-ref in Analytics(SEGTapstreamIntegration.o)
  "_kGAIScreenName", referenced from:
      -[SEGGoogleAnalyticsIntegration screen:properties:options:] in Analytics(SEGGoogleAnalyticsIntegration.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如何解决这个错误,我严格按照 here 给出的所有说明进行操作。但是就是解决不了。

请帮忙!

您可能错过了一些库或框架。删除 Analytics.framework 一次并再次添加。确保您的路径在构建设置(链接器路径)下的项目和目标中都是正确的。

我曾经使用 Cocoa pods 添加 Segment 框架,一切正常!但我仍在等待有助于手动添加的答案。

意思是需要添加更多的框架 开始时有21个错误,但是添加CoreLocation.Framework后只有19个,所以你需要找到你的项目需要添加哪些框架。

我通过将以下文件(没有框架)添加到我的项目中来实现它:

我还添加了行

#import "Analytics.h"

到我的桥接头文件(因为我使用的是 Swift)。

这对我有用,因为我没有使用任何集成客户端(尽管它们正在服务器上使用)。

我通过在带有 podfile 行的单独分支上使用 cocoapods 获得了这些文件

pod 'Analytics/Segmentio'

完成后,我切换回我的主分支(未使用 cocoapods 的地方)并将这些文件(以及 CocoaPods 配置文件的 none Pods 个文件夹。