2

在迁移到 IOS 7 后,我最近在我的应用程序中更新了 Sharekit 2.0,我使用了 sharekit wiki 上指定的更新 git 命令。但是,现在当我运行该应用程序时,它无法构建并出现以下错误:

Undefined symbols for architecture i386:
  "_FBErrorParsedJSONResponseKey", referenced from:
      ___27-[SHKFacebook doNativeShow]_block_invoke in libShareKit.a(SHKFacebook.o)
      -[SHKFacebook FBRequestHandlerCallback:result:error:] in libShareKit.a(SHKFacebook.o)
  "_FacebookSDKDomain", referenced from:
      ___27-[SHKFacebook doNativeShow]_block_invoke in libShareKit.a(SHKFacebook.o)
  "_OBJC_CLASS_$_DBRequest", referenced from:
      objc-class-ref in libShareKit.a(SHKDropbox.o)
  "_OBJC_CLASS_$_DBRestClient", referenced from:
      objc-class-ref in libShareKit.a(SHKDropbox.o)
  "_OBJC_CLASS_$_DBSession", referenced from:
      objc-class-ref in libShareKit.a(SHKDropbox.o)
  "_OBJC_CLASS_$_FBDialogs", referenced from:
      objc-class-ref in libShareKit.a(SHKFacebook.o)
  "_OBJC_CLASS_$_FBRequest", referenced from:
      objc-class-ref in libShareKit.a(BufferSheetViewController.o)
  "_OBJC_CLASS_$_FBRequestConnection", referenced from:
      objc-class-ref in libShareKit.a(SHKFacebook.o)
  "_OBJC_CLASS_$_FBSession", referenced from:
      objc-class-ref in libShareKit.a(BufferSheetViewController.o)
      objc-class-ref in libShareKit.a(SHKFacebook.o)
  "_OBJC_CLASS_$_FBSettings", referenced from:
      objc-class-ref in libShareKit.a(SHKFacebook.o)
  "_OBJC_CLASS_$_GPPShare", referenced from:
      objc-class-ref in libShareKit.a(SHKGooglePlus.o)
  "_OBJC_CLASS_$_GPPSignIn", referenced from:
      objc-class-ref in libShareKit.a(SHKGooglePlus.o)
  "_xmlFreeDtd", referenced from:
      -[ENXMLDTD dealloc] in libShareKit.a(ENXMLDTD.o)
  "_xmlFreeTextWriter", referenced from:
      -[ENXMLWriter dealloc] in libShareKit.a(ENXMLWriter.o)
      -[ENXMLWriter endDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlGetCharEncodingName", referenced from:
      -[ENXMLWriter startDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlGetExternalEntityLoader", referenced from:
      +[ENXMLDTD initialize] in libShareKit.a(ENXMLDTD.o)
  "_xmlGetLastError", referenced from:
      _CheckXMLResult in libShareKit.a(ENXMLWriter.o)
      -[ENXMLDTD initWithContentsOfFile:] in libShareKit.a(ENXMLDTD.o)
  "_xmlHashLookup", referenced from:
      -[ENXMLDTD xmlEntityNamed:] in libShareKit.a(ENXMLDTD.o)
      -[ENXMLDTD xmlElementNamed:] in libShareKit.a(ENXMLDTD.o)
  "_xmlIOParseDTD", referenced from:
      -[ENXMLDTD initWithContentsOfFile:] in libShareKit.a(ENXMLDTD.o)
  "_xmlNewInputFromFile", referenced from:
      _enxmlExternalEntityLoader in libShareKit.a(ENXMLDTD.o)
  "_xmlNewTextWriter", referenced from:
      -[ENXMLWriter startDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlOutputBufferCreateIO", referenced from:
      -[ENXMLWriter startDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlParserInputBufferCreateFilename", referenced from:
      -[ENXMLDTD initWithContentsOfFile:] in libShareKit.a(ENXMLDTD.o)
  "_xmlResetLastError", referenced from:
      _CheckXMLResult in libShareKit.a(ENXMLWriter.o)
      -[ENXMLDTD initWithContentsOfFile:] in libShareKit.a(ENXMLDTD.o)
  "_xmlSetExternalEntityLoader", referenced from:
      +[ENXMLDTD initialize] in libShareKit.a(ENXMLDTD.o)
  "_xmlTextWriterEndCDATA", referenced from:
      -[ENXMLWriter endCDATA] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterEndDocument", referenced from:
      -[ENXMLWriter endDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterEndElement", referenced from:
      -[ENXMLWriter endElement] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterSetIndent", referenced from:
      -[ENXMLWriter startDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterStartCDATA", referenced from:
      -[ENXMLWriter startCDATA] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterStartDocument", referenced from:
      -[ENXMLWriter startDocument] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterStartElement", referenced from:
      -[ENXMLWriter startElement:] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterWriteAttribute", referenced from:
      -[ENXMLWriter writeAttributeName:value:] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterWriteCDATA", referenced from:
      -[ENXMLWriter writeCDATA:] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterWriteRaw", referenced from:
      -[ENXMLWriter startDocument] in libShareKit.a(ENXMLWriter.o)
      -[ENXMLWriter writeString:raw:] in libShareKit.a(ENXMLWriter.o)
  "_xmlTextWriterWriteString", referenced from:
      -[ENXMLWriter writeString:raw:] in libShareKit.a(ENXMLWriter.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我已经仔细检查了包括框架和资源在内的设置,一切似乎都正确设置,有人知道问题是什么吗?

4

3 回答 3

9

在以前工作的项目中更新 ShareKit 子模块后,我遇到了同样的问题。

我缺少的步骤是将这三个文件夹(位于文件夹 ./ShareKit/Frameworks/)拖到我的 XCode 项目中:

  • DropboxSDK.framework
  • FacebookSDK.framework
  • GooglePlus.framework

在那之后,一切都再次正常工作:)

于 2013-10-27T20:52:30.547 回答
4

在我的情况下,将框架添加到我的项目是不够的,至少对于“_xml*”依赖项来说是不够的,所以我必须在 Build Phases > Link Binary With Libraries 中添加“libxml2.dylib”

于 2014-03-06T11:07:25.627 回答
0

在尝试了“仅构建活动架构”方面的所有内容后,认为我的一个目标库没有正确编译,我终于发现问题更加平凡:我需要更多的库来构建项目。在我的例子中,CoreMotion、AddressBook 和 libxml2。我将它们添加到 Build Phases-> Link Binary with Libraries 中,一切都很顺利。您可以通过未找到的函数的名称来猜测缺少的库。

于 2016-05-12T08:16:35.033 回答