为架构i386定义的符号:更新Yosemite和Pod安装后

时间:2014-10-19 23:44:24

标签: objective-c cocoa cocoapods

我不知道我是如何得到这么多错误的。我将我的mac更新为Yosemite,更新了我的可可做了一个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.

2 个答案:

答案 0 :(得分:23)

在构建设置中,找到"其他链接标记"。如果是粗体,选择它并按退格键,它应该恢复到正常状态。如果没有修复,请删除所有标志,然后删除并重新安装Pod。

答案 1 :(得分:1)

我有一系列非常类似的错误构建我的测试,使用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)非常有帮助,并注意xctool在我的本地环境(0.2.2)和Travis(0.2)之间的差异。

我相信我仍然在TravisCI上遇到https://github.com/facebook/xctool/issues/380,仍然有https://github.com/travis-ci/travis-ci/issues/2841开放。

请注意,在从Mavericks升级到Yosemite之前,一切都在XCode 6中正常运行。