2015-04-06 15 views
6

Swift'de iOS için yeni bir Cocoa Touch Framework oluşturmaya çalışıyorum; bazı kütüphaneler Cocoapod'lardan geliyor, ancak çalışamıyorum. Bunun hakkında bazı açık sorular olduğunu biliyorum, ancak bunların hiçbiri sorunumu düzeltmiyor.Bir Swift çerçevesinde Cocoapods nasıl kullanılır?

Test amacıyla, boş bir Cocoa Touch Framework oluşturdum, Cocoapod'ları kurdum ve 'MBProgressHUD' bölmesini ekledim. Ben derlemek Ama, bu hatayı var

#import "MBProgressHUD.h" 

:

Sonra documented by Apple (bölüm 'Aynı Framework Hedef İçinden Kodunu İçe') olarak, ben böyle benim şemsiye başlığındaki MBProgressHUD başlığını ithal
include of non-modular header inside framework module 

'Çerçeve Modülleri'nde Modüler Olmayan izinlere izin ver ayarını Evet olarak ayarladım, ancak herhangi bir etkisi yok.

Bir Swift Framework'te CocoaPod'ları kullanmanın bir yolu var mı?

+0

Link2 • • Benzer bir sorunu vardı. Çerçevemde cocoapods kaynak kodunu kopyalayarak ve Objective-C başlıkları herkese açık hale getirdim. Modül yardımı ile yapılabilecek birkaç yerde okudum ama bunu yapamadım. Objective-C modülleri ile yapabiliyorsanız bana bildirin. – Abdullah

+0

Aslında bunu yapmayı denedim, ancak bazı harici çerçeveleri kullanan AWS SDK'ya ihtiyacım var ve onlar için kaynak kodlarını bulamadım. –

cevap

14

Çözümü buldum, bu yüzden başka birinin aynı sorunu olması durumunda buraya izin vereceğim. Yani

, Cocoapods sürümü 0,36 beri iOS çerçevelerini destekler ve it's said in their blog olarak, sizin Podfile bu satırı eklemek için bir çerçeve içinde, sadece adres kullanılır? Bir Swift çerçevede, Bundan sonra

use_frameworks! 

, kendi şemsiye başlığındaki .h dosyaları dahil gerekmez, ama mesela, gerek her yerde modülü almak gerekiyor: Bu benim için çalışıyor

import MBProgressHUD 

, bu yardımcı olur umarım!

+1

Ayrıca, "çerçeve modüllerinde modüler olmayan eklere izin ver" seçeneğini de yapı ayarlarında evet olarak ayarladım. –

+0

iOS7'yi desteklemeniz gerekiyorsa ve bu nedenle use_frameworks kullanamazsanız, bu işe yaramaz! –

-1

'Objective-C köprüleme üstbilgisini kullanma' Swift'deki Objective-C çerçevelerini kullanabiliriz.

Aşağıdakilere bakın, Swift'de Objective-C çerçevesinin (örneğin Parse framework) nasıl kullanılacağını açıklayacaktır.

Link1

+3

Çerçeve içinde bir köprüleme başlığı kullanamazsınız. –

İlgili konular