3

我正在尝试在我的应用程序中手动添加分段 iOS 框架。当我构建项目时,它以以下错误结束,“架构 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)

如何解决此错误,我严格遵循此处给出的所有说明。但是只是无法解决它。

请帮忙 !

4

4 回答 4

1

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

于 2015-06-18T07:07:17.543 回答
1

这意味着需要更多的框架 一开始有 21 个错误,但添加 CoreLocation.Framework 后只有 19 个,因此您需要找到需要将哪些框架添加到您的项目中。

于 2015-06-25T15:37:55.600 回答
1

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

Segment.IO 正常工作所需的文件

我还添加了行

#import "Analytics.h"

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

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

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

pod 'Analytics/Segmentio'

一旦我这样做了,我切换回我的主分支(没有使用 cocoapods)并从 Pods 文件夹中提取这些文件(并且没有任何 CocoaPods 配置文件)。

于 2015-07-18T14:09:21.763 回答
0

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

于 2015-06-11T09:21:00.493 回答