在Xcode 6 GM中使用Cocoapods嵌入式框架

8
这是我的配置:
  1. Pod X:与 MyProjectSharedCode 相关联,声明了 SomeClass 类(使用 Objective C)
  2. MyProjectExtension:Today 扩展程序,与 MyProject 共享数据
  3. MyProject:配套应用程序,用于配置 MyProjectExtension
  4. MyProjectSharedCode:嵌入式框架,用于在 MyProjectMyProjectExtension 中共用代码。使用 SomeClass
我无法使其工作。我尝试过:
  • MyProjectSharedCode.h 中导入 PodX.h,但结果造成编译器错误:

include of non-modular header inside framework module

  • 这让我找到了一些Stackoverflow链接,包括this one。然而,更改此选项也无法使我编译。正如@NachoSoto在接受答案的最后一条评论中所说的那样,自从Xcode 6 B5以来,该答案似乎不起作用。

任何帮助/线索都将不胜感激。


你不需要将代码与框架链接。你只需要引用它的头文件进行编译,但是目前还没有链接任何内容。只有主机应用程序会链接所有已编译的二进制文件。 - Rivera
我尝试了一下:将两个应用程序与当前的Pods链接起来。添加了一个新的目标。更新了头文件搜索路径以包括“Pods”文件夹。删除了“Common”文件夹,只将框架作为目标重新添加了文件。构建完成后,每个Swift文件都无法编译,并显示错误:<unknown>:0: error: could not build Objective-C module 'LiFXWidgetSharedCode'。 - DCMaxxx
首先,我没有解决这个问题。最后一次尝试是在 pod 项目中使用“定义模块”构建 pods(如文档所述:“当您导入外部框架时,请确保您导入的框架的 Defines Module 构建设置设置为 Yes。”)。但是,我不确定,但我认为并非所有的 pods 源代码都会在每次构建时重新编译,有些 pods 只是带有头文件的静态库。因此,没有定义模块,您可以从问题中看到错误。某些人可以尝试使用已定义模块名称和公共范围标头重新编译 pod 源代码(它们默认为项目中的标头)。 - Renatus
1个回答

2
今天发布了一篇好文章,讲述如何使用Cocoapods 0.36.0的开发分支,该分支正在添加框架/Swift支持。

http://swiftwala.com/cocoapods-is-ready-for-swift/

假设我已经将Pod链接到一个框架中,然后在桥接头文件中包含了这些头文件。虽然有点奇怪,但只要您不想编写使用框架内的Pod的Swift代码,它就可以工作。 编辑 0.36.0的预发布版本已经发布您可以在此处查看博客文章

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接