为体系结构i386定义了符号:更新Yosemit和Pod之后安装
问题描述:
我不知道我是如何得到这么多错误的。我更新了我的Mac到Yosemite,更新了我的可可做了一个pod安装。为体系结构i386定义了符号:更新Yosemit和Pod之后安装
我感觉不好因为有很多类似的问题,但我找不到任何看起来相关的东西。我试图更新可可豆荚重新安装。删除pod文件并做一个pod init,检查我的架构,它具有armvs6,armvs7标准架构。我真的很困惑。
defined symbols for architecture i386:
"_OBJC_CLASS_$_AFHTTPRequestOperation", referenced from:
objc-class-ref in LoginController.o
"_OBJC_CLASS_$_AFHTTPRequestOperationManager", referenced from:
objc-class-ref in ChatController.o
objc-class-ref in TutorSessionViewController.o
objc-class-ref in StudentSessionManager.o
objc-class-ref in TutorSessionManager.o
objc-class-ref in Device.o
objc-class-ref in RequestHandler.o
objc-class-ref in TutorMapController.o
...
"_OBJC_CLASS_$_AFJSONRequestSerializer", referenced from:
objc-class-ref in ChatController.o
objc-class-ref in TutorSessionViewController.o
objc-class-ref in StudentSessionManager.o
objc-class-ref in TutorSessionManager.o
objc-class-ref in Device.o
objc-class-ref in RequestHandler.o
objc-class-ref in TutorMapController.o
...
"_OBJC_CLASS_$_AMTagView", referenced from:
objc-class-ref in ProfileController.o
"_OBJC_CLASS_$_APNavigationController", referenced from:
objc-class-ref in StudentSessionManager.o
objc-class-ref in TutorSessionManager.o
"_OBJC_CLASS_$_FUIButton", referenced from:
_OBJC_CLASS_$_GreenButton in GreenButton.o
_OBJC_CLASS_$_RedButton in RedButton.o
"_OBJC_CLASS_$_JSBubbleImageViewFactory", referenced from:
objc-class-ref in ChatController.o
"_OBJC_CLASS_$_JSBubbleView", referenced from:
objc-class-ref in ChatController.o
"_OBJC_CLASS_$_JSMessage", referenced from:
_OBJC_CLASS_$_TreeMessage in Treemessage.o
"_OBJC_CLASS_$_JSMessagesViewController", referenced from:
_OBJC_CLASS_$_ChatController in ChatController.o
"_OBJC_CLASS_$_NZCircularImageView", referenced from:
objc-class-ref in ChatController.o
"_OBJC_CLASS_$_PKImagePickerViewController", referenced from:
objc-class-ref in SignUpPhotoTableViewCell.o
"_OBJC_CLASS_$_RATreeView", referenced from:
objc-class-ref in SubjectViewController.o
"_OBJC_CLASS_$_RNBlurModalView", referenced from:
objc-class-ref in TutorOptions.o
objc-class-ref in ChatController.o
objc-class-ref in CHTumblrMenuView.o
objc-class-ref in SubjectAddViewController.o
"_OBJC_CLASS_$_SDImageCache", referenced from:
objc-class-ref in ProfileSetting.o
objc-class-ref in JAAppDelegate.o
"_OBJC_CLASS_$_SRHubConnection", referenced from:
objc-class-ref in JAAppDelegate.o
"_OBJC_CLASS_$_SVProgressHUD", referenced from:
objc-class-ref in TutorOptions.o
objc-class-ref in ChatController.o
objc-class-ref in JALeftViewController.o
objc-class-ref in UserProfileView.o
objc-class-ref in RequestHandler.o
objc-class-ref in TimerSessionController.o
objc-class-ref in SplashViewController.o
...
"_OBJC_CLASS_$_TWMessageBarManager", referenced from:
objc-class-ref in MessangeHandler.o
"_OBJC_METACLASS_$_FUIButton", referenced from:
_OBJC_METACLASS_$_GreenButton in GreenButton.o
_OBJC_METACLASS_$_RedButton in RedButton.o
"_OBJC_METACLASS_$_JSMessage", referenced from:
_OBJC_METACLASS_$_TreeMessage in Treemessage.o
"_OBJC_METACLASS_$_JSMessagesViewController", referenced from:
_OBJC_METACLASS_$_ChatController in ChatController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
这里是我的Podfile
source 'https://github.com/CocoaPods/Specs.git'
target 'StudyTree' do
pod 'JSMessagesViewController'
pod 'XHRealTimeBlur'
pod 'PKImagePicker', '~> 0.0.3'
pod 'SVProgressHUD', :head
pod 'RMStepsController', '~> 1.0.1'
pod 'TWMessageBarManager', '~> 1.7.0'
pod 'TTCounterLabel'
pod 'RATreeView', '~> 0.2.2'
pod 'AFPopupView', '~> 1.0'
pod 'AMTagListView'
pod 'RNBlurModalView', '~> 0.1.0'
pod 'BPForms'
pod 'SignalR-ObjC', :git=>'https://github.com/DyKnow/SignalR-ObjC.git', :branch => 'feature-2.0.0.beta1'
pod 'APDropDownNavToolbar', '~> 1.1'
pod 'FlatUIKit'
pod 'NZCircularImageView', '~> 0.0.4'
xcodeproj '/Users/ethankeiser/WorkSpace/test/StudyTree/StudyTree.xcodeproj'
end
编辑
所以我删除了所有其它链接器标记,并用$取代它(继承),我仍然得到这个。
[!] The `StudyTree [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-StudyTree/Pods-StudyTree.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
[!] The `StudyTree [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-StudyTree/Pods-StudyTree.release.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.
答
在Build Settings中,找到“Other Linker Flags”。如果它是粗体,选择它并按退格键,它应该回到其正常状态。如果它不是固定的,删除所有的标志,然后删除并重新安装豆荚。
答
我有一个非常类似的一系列错误的建设我的测试中,其使用OCHamcrest和OCMock,例如:
Undefined symbols for architecture i386:
"_HC_assertThatLongLongWithLocation", referenced from:
-[WNGLoggerTests test_convertToMetricMessage_constructs_a_proper_metric] in loggerTests.o
"_HC_assertThatUnsignedIntegerWithLocation", referenced from:
-[WNGLoggerTests test_timerCount_reports_the_correct_number_of_timers_in_progress] in loggerTests.o
"_OBJC_CLASS_$_OCMockObject", referenced from:
objc-class-ref in LoggingConnectionDelegateTests.o
objc-class-ref in loggerTests.o
但解决的办法是为我的方案不同。
在我的调查过程中,我验证了XCode 6.0.1命令行工具已安装,并且它看起来没有问题。
然而,我的解决办法是用(重新)安装Xcode的命令行工具:
xcode-select --install
我发现它非常有帮助的使用完全相同的CocoaPods相同版本(0.33.1),并记我的本地环境(0.2.2)和特拉维斯(0.2)之间xctool的差异。
我相信我仍然在TravisCI上遇到https://github.com/facebook/xctool/issues/380,它仍然有https://github.com/travis-ci/travis-ci/issues/2841开放。
请注意,在从小牛升级到优胜美地之前,XCode 6中的所有内容都工作正常。
谢谢!这解决了我的问题!我真的不知道为什么苹果有时候做这件事.. – fustalol 2015-01-19 10:01:44
我很惊讶这个答案! – SteBra 2015-04-24 07:27:17