【发布时间】: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