2015-04-06 90 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

您不能在框架內使用橋接頭。 –