【问题标题】:iOS Undefined symbols for architecture x86_64 XcodeiOS 架构 x86_64 Xcode 的未定义符号
【发布时间】:2016-11-07 05:51:07
【问题描述】:

我在我的应用中安装了一些第三方框架。每件事都运行良好,突然有一天我开始遇到以下错误。请注意,这些链接器错误仅在我尝试在 iOS 模拟器上运行我的应用程序时出现。

Undefined symbols for architecture x86_64:
  "_AFNetworkingOperationFailingURLResponseDataErrorKey", referenced from:
      ___61-[DataManager signupWithEmail:password:name:success:failure:]_block_invoke.127 in DataManager.o
      ___46-[DataManager favoriteLesson:success:failure:]_block_invoke.311 in DataManager.o
      ___48-[DataManager unfavoriteLesson:success:failure:]_block_invoke.345 in DataManager.o
  "_AFStringFromNetworkReachabilityStatus", referenced from:
      ___41-[DataManager startObservingReachability]_block_invoke in DataManager.o
  "_OBJC_CLASS_$_ADJConfig", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_ADJEvent", referenced from:
      objc-class-ref in TrackingHelper.o
  "_OBJC_CLASS_$_AFCompoundResponseSerializer", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFHTTPRequestSerializer", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFHTTPResponseSerializer", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFHTTPSessionManager", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFJSONRequestSerializer", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFJSONResponseSerializer", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFNetworkReachabilityManager", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AFURLSessionManager", referenced from:
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_AMTagView", referenced from:
      objc-class-ref in CategorySelectionViewController.o
  "_OBJC_CLASS_$_Adjust", referenced from:
      objc-class-ref in AppDelegate.o
      objc-class-ref in TrackingHelper.o
  "_OBJC_CLASS_$_CarbonTabSwipeNavigation", referenced from:
      objc-class-ref in MyProfileViewController.o
      objc-class-ref in SearchResultsContainerViewController.o
  "_OBJC_CLASS_$_FBSDKAccessToken", referenced from:
      objc-class-ref in SignUpViewController.o
      objc-class-ref in MyProfileViewController.o
  "_OBJC_CLASS_$_FBSDKAppEvents", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_FBSDKLoginManager", referenced from:
      objc-class-ref in SignUpViewController.o
      objc-class-ref in DataManager.o
      objc-class-ref in LoginViewController.o
  "_OBJC_CLASS_$_MGSwipeButton", referenced from:
      objc-class-ref in LessonsViewController.o
  "_OBJC_CLASS_$_MGSwipeTableCell", referenced from:
      _OBJC_CLASS_$_LessonTableViewCell in LessonTableViewCell.o
  "_OBJC_CLASS_$_Mixpanel", referenced from:
      objc-class-ref in AppDelegate.o
      objc-class-ref in InitialViewController.o
      objc-class-ref in DataManager.o
  "_OBJC_CLASS_$_WYPopoverController", referenced from:
      objc-class-ref in GuideViewController.o
  "_OBJC_METACLASS_$_MGSwipeTableCell", referenced from:
      _OBJC_METACLASS_$_LessonTableViewCell in LessonTableViewCell.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

任何帮助将不胜感激。如果我在实际设备上而不是在模拟器上进行,我可以调试、构建和存档我的项目。我已经通过 cocapods 添加了所有这些框架,并且我使用的是 Xcode 7.3。

【问题讨论】:

  • 如果您的类的 .m 文件未在目标的“构建阶段”选项卡的“编译源”步骤下列出,则可能会出现此类错误。通常 Xcode 会为您执行此操作,但有时它会丢失绘图并且您需要手动添加 .m 文件。这样做 TargetSettings -> Build Phases -> Compile Sources -> 添加你的 .m 类 ->Build and Run
  • 添加的文件已经在编译源部分。
  • 删除所有框架并重新添加(在构建阶段)
  • 清理项目,清理派生数据,重新安装 pod。为我工作。

标签: ios objective-c xcode cocoapods linker-errors


【解决方案1】:

我也遇到过同样的错误。如下所示

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_AFJSONRequestSerializer", referenced from:
      objc-class-ref in CuebiqSDK(BADispatcherHelper.o)
  "_OBJC_CLASS_$_AFURLSessionManager", referenced from:
      objc-class-ref in CuebiqSDK(BADispatcherHelper.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我没有在我的项目中添加 AFURLSessionManager 相关的,如 error 中所述。所以,我添加了所有的 AFNetworking 类解决了这个问题。确保将它们添加到项目目标并显示在构建阶段->编译源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 2021-03-12
    • 2015-11-24
    • 2013-03-09
    • 2013-02-07
    • 2016-11-05
    相关资源
    最近更新 更多