【问题标题】:How to use AFNetworking 1.0 in iOS 8 and Xcode 6 (without migrating to 2.0)如何在 iOS 8 和 Xcode 6 中使用 AFNetworking 1.0(无需迁移到 2.0)
【发布时间】:2014-11-10 11:16:40
【问题描述】:

我的问题是我在一个与 Xcode 5 完全兼容的旧项目上工作,但是在更新到 Xcode 6 之后(我删除了 iOS 5 兼容性),我在使用 AFNetworking 1.0 时收到以下错误:

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_AFHTTPClient", referenced from:
  _OBJC_CLASS_$_HttpClient in HttpClient.o
"_OBJC_CLASS_$_AFJSONRequestOperation", referenced from:
  objc-class-ref in OperationJSON.o
"_OBJC_CLASS_$_SSKeychain", referenced from:
  objc-class-ref in AppDelegate.o
  objc-class-ref in ViewController.o
  objc-class-ref in SettingsViewController.o
  objc-class-ref in SignInViewController.o
  objc-class-ref in WebServiceManager.o
  objc-class-ref in AccountInfoViewController.o
  objc-class-ref in ChangePasswordViewController.o
  ...
"_OBJC_CLASS_$_TTTAttributedLabel", referenced from:
  objc-class-ref in PsychographicEndViewController.o
  objc-class-ref in EditVideoCategoriesViewController.o
"_OBJC_METACLASS_$_AFHTTPClient", referenced from:
  _OBJC_METACLASS_$_HttpClient in HttpClient.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我找到了这个帖子Undefined symbol for architecture "_OBJC_CLASS_$_AFHTTPClient",我将 AFNetworking 升级到了 2.0,但又出现了一个错误:

'AFHTTPClient.h' file not found

因为在新版本的 AFNetworking 中删除了 AFHTTPClient 类。此外,迁移到 2.0 版是一个困难的过程,因为必须更改很多文件。

请提出可能的解决方案,以便将 AFNetworking 1.0 与 Xcode 6 一起使用。

【问题讨论】:

  • 您看到的第一个错误与 AFNetworking 2.0 无关。如果你还没有准备好升级,你应该留在 AFNetworking 1.0,因为 1.0 和 2.0 之间的变化很大。您看到的错误说该类不是为 i386 架构(模拟器)构建的。您应该检查项目的构建设置的Valid Architectures 部分。然后,您应该检查是否有任何迁移的旧设置会影响此错误。基本上,如果您从头开始创建一个项目,使用 AFNetworking 1.0 甚至针对 iOS 5.1,它就可以正常工作。我几周前刚做的
  • 感谢@Peter 的回复。!我必须在Valid Architectures 添加arm64 并将Build Active Architecture Only 的Debug 设置为Yes。现在它工作正常。!祝你有美好的一天!
  • 很高兴它为您解决了问题。刚刚移动我的评论来回答。如果您能接受,请欣赏它。

标签: ios objective-c iphone xcode6 afnetworking


【解决方案1】:

您看到的第一个错误与 AFNetworking 2.0 无关。如果你还没有准备好升级,你应该留在 AFNetworking 1.0,因为 1.0 和 2.0 之间的变化很大。您看到的错误说该类不是为 i386 架构(模拟器)构建的。您应该检查项目的构建设置的有效架构部分。然后,您应该检查是否有任何迁移的旧设置会影响此错误。基本上,如果您从头开始创建项目,使用 AFNetworking 1.0 甚至针对 iOS 5.1,它会正常工作。几周前我刚做了

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多