如何在Swift框架中使用Cocoapods?

10

我正在尝试使用一些Cocoapods库在Swift中为iOS创建一个新的Cocoa Touch框架,但无法使其正常工作。 我知道有一些关于此的问题,但没有一个似乎可以解决我的问题。

出于测试目的,我只是创建了一个空的Cocoa Touch框架,安装了Cocoapods并添加了“MBProgressHUD”pod。 然后,根据苹果文档('在同一框架目标内导入代码'部分),我像这样在我的Umbrella头文件中导入了MBProgressHUD头文件:

#import "MBProgressHUD.h"

但是当我编译时,出现了这个错误:
include of non-modular header inside framework module

我已经将“允许框架模块中使用非模块化包含”设置为是,但它没有任何效果。
有没有办法在Swift框架中使用CocoaPods?

我遇到了类似的问题。最后,我将CocoaPods源代码复制到我的框架中,并将Objective-C头文件公开。我在几个地方看到可以通过模块来完成,但我无法做到。如果您能够使用Objective-C模块实现,请告诉我一声。 - Abdullah
我其实也尝试过这样做,但我需要使用 AWS SDK,它使用了一些外部框架,而我找不到它们的源代码。 - Remy Cilia
2个回答

15
我找到了解决方案,所以我会在这里分享,以防其他人遇到相同的问题。
所以,Cocoapods从0.36版本开始支持iOS框架,并且正如他们的博客中所说,要在一个框架中使用它,你只需要在你的Podfile中添加这一行:
use_frameworks!
在 Swift 框架中,您无需在总头文件中包含 .h 文件,但需要在需要使用该框架的任何位置导入模块,例如:
import MBProgressHUD

这对我很有效,希望能帮到你!


1
我还需要在构建设置中将“允许在框架模块中包含非模块化内容”设置为是。 - Nate Uni
如果你需要支持iOS7,并且不能使用use_frameworks!那么这似乎不起作用。 - Alfie Hanssen

-1

使用“Objective-C桥接头”,我们可以在Swift中使用Objective-C框架。

请参考以下内容,它将解释如何在Swift中使用Objective-C框架(例如Parse框架)。

Link1
Link2


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