2015-04-06 51 views
6

我正尝试在Swift中为iOS创建一个新的Cocoa Touch框架,使用Cocoapods的一些库,但我无法工作。 我知道有一些关于这方面的问题,但他们似乎都没有解决我的问题。如何在Swift框架中使用Cocoapods?

出于测试目的,我刚创建了一个空的Cocoa Touch Framework,安装了Cocoapods并添加了'MBProgressHUD'窗格。 然后,documented by Apple(节“从在同一框架内目标导入代码”),我进口MBProgressHUD头在我的伞头这样的:

#import "MBProgressHUD.h" 

但是,当我编译,我有这样的错误:

include of non-modular header inside framework module 

我确实设置了'允许框架模块中的非模块化包含'设置为是,但它没有任何影响。

有什么办法可以在Swift框架中使用CocoaPods?

+0

我有类似的问题。我最终将cocoapods源代码复制到我的框架并公开制作了Objective-C标头。我在几个地方阅读,可以通过模块的帮助完成,但我无法做到。如果你能够使用Objective-C模块,请让我知道。 – Abdullah

+0

我其实也试过这样做,但我需要AWS SDK,它使用了一些外部框架,我无法找到它们的源代码。 –

回答

14

我找到了解决方案,所以我会让它在这里以防别人遇到同样的问题。

所以的CocoaPods支持自0.36版本的iOS框架,并作为it's said in their blog,使用它在一个框架,你只需要添加此行您Podfile:

use_frameworks! 

之后,在斯威夫特框架,你并不需要在你的伞头的.h文件,但你需要导入模块,无论你需要它,比如:

import MBProgressHUD 

这是为我工作,希望它帮助!

+1

我还需要在构建设置中将“允许非模块化包含在框架模块中”设置为“是”。 –

+0

如果您需要支持iOS7,这似乎不起作用,因此无法使用use_frameworks! –

-1

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

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

Link1
Link2

+3

您不能在框架内使用桥接头。 –

相关问题