14

I'm having a really tough time getting XMPPFramework to work. I've followed every direction written on the net, and XCode is not finding any of my XMPPFramework classes.

Expected specifier-qualifier-list before 'XMPPStream' XMPP.h: No such file or directory XMPPRoster.h: No such file or directory

I have XMPPFramework copied into my project's root directory. Why can't these files be seen? Is there something that I need to do under Header Search Paths or Library Search Paths?

I've set those entries to $(inherited) and $(SRCROOT) and XCode 4.2 auto-fills in my project's root directory and still doesn't find my files.

I'm quite sure that I'm not the only one having this issue, and it is a showstopper. Any ideas?

4

3 回答 3

38

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

步骤1

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

必要的文件夹是:

  • 供应商/CocoaAsyncSocket
  • 供应商/可可伐木工人
  • 供应商/KissXML
  • 供应商/libidn
  • 验证
  • 类别
  • 实用程序

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

将文件夹拖动到 Xcode 时,选择与此图像完全相同的复选框/单选按钮很重要:

在此处输入图像描述

第2步

a) 拖到Sample_XMPPFramework.h您的 Xcode 并选择复选框/单选按钮,如步骤 1

b) 将其重命名为XMPPFramework.h

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

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

在此处输入图像描述

第 3 步

链接以下框架和库

  • CFNetwork.framework
  • 安全框架
  • libxml2.dylib
  • libresolv.dylib
  • 性欲文件

在此处输入图像描述

第4步

将这两行添加到Build Settings

  • 其他链接器标志 = -lxml2 在此处输入图像描述
  • 标头搜索路径 = /usr/include/libxml2 在此处输入图像描述

完成这 4 个步骤后,您应该会很好。但是,请注意,您通常需要#import <UIKit/UIKit.h>在使用前XMPPFramework

于 2015-05-30T08:21:28.897 回答
4

在 XMPPFramework gitHub wiki 1上有一个分步说明,可帮助为您的项目设置 XMPPFramework。

实际上,您提到的错误与说明中指出的错误很接近。

“但是,在导入 XMPPFramework 类时,例如通过调用 '#import XMPP.h' 会导致 XCode 显示错误 'XMPP.h' not found。看起来 XCode 没有找到任何 XMPPFramework 文件。”

我希望这能为您提供足够的信息来解决您面临的这个问题,即使这些说明并非专门针对 iOS-5。

于 2012-04-05T11:05:42.047 回答
0

与@Brian 回答中的说明相关的其他信息。

第 3 步的补充:
如果“选择要添加的框架和库”窗口中没有 libxml2.dylib 等 lib 文件,请按照以下步骤查找:

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

第 4 步之后:
还要注意 XMPPFramework 及其依赖项使用 ARC。如果您的应用主要使用 MRR 而不是 ARC,请将您的应用转换为 ARC 或执行第 5 步。

第 5 步

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

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

  • 转到目标的设置
  • Build Phases
  • 扩张Compile Sources
  • 选择列表中所有与 XMPPFramework 相关的文件
  • 按下Enter打开编译器标志的编辑窗口
  • 类型-fobjc-arc
  • Enter再次保存更改。

Compile Sources列表未排序,因此使用搜索字段过滤列表很有帮助XMPPXEP这会找到大部分文件,但仍有一些必须从完整的文件列表中挑选出来。

于 2015-12-03T00:44:34.897 回答