iOS未定义符号的架构x86_64 Xcode

3

我在我的应用程序中安装了一些第三方框架。一切都很正常,但是有一天我开始收到以下错误消息。请注意,只有当我尝试在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。


1
如果您的类的.m文件未列在目标的“Build Phases”选项卡下的“Compile Sources”步骤中,则可能会出现此类型的错误。通常情况下,Xcode会自动完成此操作,但有时它会失去方向,您需要手动添加.m文件。 按照以下步骤进行操作: TargetSettings -> Build Phases -> Compile Sources -> 添加您的.m类 -> 构建并运行 - Hitesh Surani
编译源代码部分已经包含了这些文件的添加。 - Madu
将所有框架删除并重新添加(在构建阶段)。 - Mehul Thakkar
清理项目,清理派生数据,重新安装Pods。这对我有用。 - Romain TAILLANDIER
1个回答

0

我曾经遇到过同样的错误。就像下面这样

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相关的,正如错误所述。因此,我添加了所有AFNetworking类以解决问题。请确保它们已添加到项目目标,并显示在“构建阶段->编译源”下。

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接