2013-04-16 16 views
14

, ben aslında öğeleri vardır:Cocoapods iOS için benim cocoapod olarak

  1. Açık kaynak sınıfları (.m & H dosyaları)
  2. MyFramework.framework (.framework dizini Kaynaklar için üstbilgi dosyaları ve .bundle)

Açık kaynak sınıflarından biri, uygulamada MyFramework bileşenlerini kullanabilmesi için import <MyFramework.MyFramework.h> numaralı telefonu kullanır. Ancak bunun nedeni, podspec'in spec tiftik testini geçmesi konusunda sorun yaşıyorum (pod spec lint MyCocoapod.podspec). Ben Spec tiftik doğrulama çalıştırdığınızda, diyor ki:

ERROR | [iOS] [xcodebuild] .../MyFile.h:54:9: fatal error: 'MyFramework/MyFramework.h' file not found

araştırırken, ben kaldırırsanız podspec Spec tiftik doğrulama geçmek olmadığını fark podspec en source_files bölümünde, s.source_files = 'MyFiles.{h,m}' yılında açık kaynak sınıfı. Sınıfımın neden özel bir çerçeveyi özel teknik çerçevemi içe aktarma özelliğiyle gerçekleştiremediğine dair bir fikriniz var mı?

podspec ilgili kod şuna benzer:

s.preserve_paths  = 'myframework/MyFramework.framework' 
s.frameworks   = 'Foundation', 'MyFramework' 
s.xcconfig   = { 'FRAMEWORK_SEARCH_PATHS' => '$(SRCROOT)/myframework/' } 
s.public_header_files = 'MyFramework.framework/Headers/*.h', 'SourceCode/*.h' 
s.source_files  = 'SourceCode/*.{h,m}' # Crashes here - Source_file imports MyFramework.h. If I take this out, it passes spec lint validation 

cevap

21

DÜZENLEME Bu süreç artık tamamen vendored_frameworks seçeneği ile işlenir. Bu, yolları, çerçeve arama yollarını ve projeye bağlantıyı korur.

s.vendored_frameworks = 'path/to/SomeFramework.framework'

paket dosyaları yapmak dahil etmek için:: Cevabınız için

s.resources ='path/to/SomeBundle.bundle'

+1

Teşekkür – johngraham

+0

"source_files" ifadesinin podspec'e eklenmesi, çerçevenizi içe aktarma konusunda herhangi bir etkisi olmamalıdır. CocoaPod'ların tiftikte gösterdiği hata nedir? (Ayrıca, en yeni sürüm olan 'gem update' özelliğini kullandığınızdan emin olun) –

+0

Hmm, hata, soru alanındadır ... 'HATA | ...'. (Sadece ilgili kodumu podspec'imden ekledim) Belki de ilk olarak çerçeveyi doğru şekilde içe aktarmıyorum, bu yüzden source_files da çerçeveyi düzgün bir şekilde içe aktaramaz. Bunu araştıracağım ve sana geri döneceğim. – johngraham

4

bir kullanabileceğiniz çerçeve dahil etmek. Yani eğer benim cocoapod'um ** sadece bir çerçeve ise, bu işe yarar. Ancak, bölmenin ayrıca dağıtılacak bazı source_code (.m & .h dosyaları) da vardır. Pod'umun source_code (.m) 'ında bir `#import ` gerçekleşir ve bu da tiftik speklerinin doğrulama yapılmadığı yerdir.
İlgili konular