【问题标题】:Using Cocoapods in embedded framework with Xcode 6 GM在 Xcode 6 GM 的嵌入式框架中使用 Cocoapods
【发布时间】:2015-01-08 04:44:30
【问题描述】:

这是我的配置:

  1. Pod X :与MyProjectSharedCode 链接,声明类SomeClass(在Objective C中)
  2. MyProjectExtension :今日扩展,与MyProject 共享数据
  3. MyProject :用于配置 MyProjectExtension 的配套应用程序
  4. MyProjectSharedCodeMyProjectMyProjectExtension 中通用代码的嵌入式框架。使用SomeClass

我无法让它工作。我试过了:

  • 正在导入PodX.hin MyProjectSharedCode.h,但会导致编译器错误:

在框架模块中包含非模块化头文件

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

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

【问题讨论】:

  • 您不会将代码与框架链接。您引用其头文件进行编译,但尚未链接任何内容。只有宿主应用程序链接所有已编译的二进制文件。
  • 我试了一下:将两个应用程序与 Pod 链接,就像目前一样。添加了一个新目标。更新了标题搜索路径以包含 Pods 文件夹。删除了Common 文件夹,重新添加了仅以框架为目标的文件。建成。每个 Swift 文件都无法编译并出现错误:<unknown>:0: error: could not build Objective-C module 'LiFXWidgetSharedCode'
  • 第一。我没有解决问题。最后一次尝试是在 pod 项目中使用“定义模块”构建 pod(如 doc 中的“当您导入外部框架时,请确保您正在导入的框架的定义模块构建设置设置为是。”)。但。我不确切知道,但我认为并非所有 pod 源代码在每次构建时都会重新编译,有些 pod 只是带有标头的静态库。因此,没有定义任何模块,您可以从问题中看到错误。 Smb 可以尝试使用定义的模块名称和公共范围标头重新编译 pod 源(它们在 pod 中默认是项目)。

标签: xcode frameworks swift cocoapods


【解决方案1】:

今天发布了一篇关于使用 Cocoapods 0.36.0 的开发分支的好帖子,该分支正在添加框架/swift 支持。

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

我一直在将 pod 链接到框架中,然后在桥接头中包含标头。它有点古怪,但只要您不想编写使用框架本身中的 pod 的 swift,它就可以工作。

编辑 0.36.0 的预发布版本已经发布you can see the blog post here

【讨论】:

    猜你喜欢
    • 2014-11-11
    • 1970-01-01
    • 2014-08-02
    • 2015-01-08
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多