关于如何手动安装XMPPFramework的最新说明?

我在XMPPFramework上工作的时候非常困难。 我遵循networking上写的每一个方向,XCode没有find我的任何XMPPFramework类。

XMPPStream之前的预期说明符限定符列表XMPP.h:没有这样的文件或目录XMPPRoster.h:没有这样的文件或目录

我有XMPPFramework复制到我的项目的根目录。 为什么不能看到这些文件? 在“标题searchpath”或“库searchpath”下是否需要执行某些操作?

我已经设置这些条目$(inheritance)和$(SRCROOT)和XCode 4.2自动填充我的项目的根目录,仍然没有find我的文件。

我相当肯定,我不是唯一有这个问题的人,而且是一个不争的事实。 有任何想法吗?

在XMPPFramework gitHub wiki 1中,有一个一步一步的指导,可以帮助为您的项目设置XMPPFramework。

事实上,你所提到的错误接近于指示中所指出的错误。

“但是,在导入一个XMPPFramework类的时候,例如调用'#import XMPP.h'会导致XCode显示错误'XMPP.h'not found。看来XCode没有find任何的XMPPFramework文件。

我希望这给你足够的信息来解决你正面临的问题,即使这些说明不是专门针对iOS-5的。

github上的wiki已经过时了。 这是我如何手动安装XMPPFramework

步骤1

将XMPPFramework存储库克隆到您计算机上的某个位置,并将所需的文件夹拖到Xcode项目的somewhere/XMPPFramework中。

必要的文件夹是:

  • 供应商/ CocoaAsyncSocket
  • 供应商/ CocoaLumberjack
  • 供应商/ KissXML
  • 供应商/的libidn
  • authentication
  • 分类
  • 核心
  • 公用事业

您可能还需要Extensions ,但它是可选的。

将文件夹拖到Xcode时,select与此图像完全一样的checkbox/单选button非常重要:

在这里输入图像说明

第2步

a)将Sample_XMPPFramework.h您的Xcode中,并selectcheckbox/单选button,如第1步

b)将其重命名为XMPPFramework.h

c)根据您的需要定制XMPPFramework.h的内容。 (我没有改变任何东西)

在执行步骤1和步骤2之后,Xcode项目导航器中的文件结构应如下所示:

在这里输入图像说明

第3步

链接下面的框架和库

  • CFNetwork.framework
  • Security.framework
  • libxml2.dylib
  • libresolv.dylib
  • libidn.a

在这里输入图像说明

步骤4

将这两行添加到“ Build Settings

  • 其他链接器标志= -lxml2 在这里输入图像说明
  • HEADER SEARCH PATHS = / usr / include / libxml2 在这里输入图像说明

经过这4个步骤,你应该很好。 但是请注意,在使用XMPPFramework之前,通常需要#import <UIKit/UIKit.h>

有关@ Brian的答案中的说明的其他信息。

除步骤3:
如果一个lib文件如libxml2.dylib在“select要添加的框架和库”窗口中不可用,请按照下列步骤查找:

  1. 点击Add Other...
  2. 在文件select窗口中, COMMAND+SHIFT+G (进入文件夹)
  3. 键入/usr/lib ,然后Enter或单击Go
  4. select您需要的.dylib文件,然后单击Open

第四步之后:
另请注意,XMPPFramework及其依赖关系使用ARC。 如果您的应用程序主要使用MRR而不是ARC,请将您的应用程序转换为ARC或执行步骤5。

第5步

-fobjc-arc编译器标志添加到XMPPFramework文件。

在Xcode中,对于每个将使用XMPPFramework的目标,

  • 转到目标的设置
  • Build Phases
  • 展开Compile Sources
  • select列表中所有与XMPPFramework相关的文件
  • Enter打开编译器标志的编辑窗口
  • 键入-fobjc-arc
  • 再次Enter以保存更改。

Compile Sources列表是未sorting的,因此使用search字段筛选XMPP上的列表以及XEP上的列表会很有帮助。 发现大部分文件,但仍然有一些必须从文件的完整列表中挑选出来。