我有一個名爲MeshPipe的庫,我正在嘗試編寫PodSpec。我在Xcode 7.1.1上使用Mac OS X 10.11上的CocoaPods 0.39.0。CocoaPods:spec lint與subspec丟棄父規格?
這是一個只有三個文件的小型圖書館。它還有一個可選部分,用於支持我的另一個庫,Cerfing。在我的podspec中,我只想在主窗格中包含核心部分,只有對Cerfing支持感興趣的人才能將Cerfing部件和依賴項拉到他們的項目中。
爲此,我寫與subspecs一個podspec:一爲 「核心」 部分:
s.subspec "Core" do |core|
core.source_files = "MeshPipe/*.{h,m}"
core.exclude_files = "MeshPipe/main.m"
core.public_header_files = "MeshPipe/MeshPipe.h"
end
,一個用於可選的 'cerfing' 部分:
s.subspec "CerfingMeshPipe" do |cerf|
cerf.source_files = "CerfingMeshPipeTransport/*.{h,m}"
cerf.exclude_files = "CerfingMeshPipeTransport/main.m"
cerf.dependency "Cerfing"
end
而且那麼我告訴CocoaPods,大多數人只會想要核心部分:
s.default_subspecs = "Core"
這個podspec的確會不掉毛,因爲
- NOTE | [MeshPipe/CerfingMeshPipe] xcodebuild:
MeshPipe/CerfingMeshPipeTransport/CerfingMeshPipeTransport.h:10:9:
fatal error: 'MeshPipe/MeshPipe.h' file not found
如果我pod spec lint --no-clean --verbose
並打開生成的項目中,只有subspec源項目中可用,主要MeshPipe文件都不見了!
(注意沒有MeshPipe/Meshpipe的。{H,M}在那裏!)
如果我嘗試顯式地從subspec添加一個依賴於主規範(cerf.dependency('MeshPipe/Core')
) CocoaPods告訴我,存在從MeshPipe/Core
到MeshPipe/Core
的循環依賴關係。
我也試過在頂層根目錄規範中有核心的源代碼,但是產生了相同的錯誤。
請幫助:爲什麼我的subspec不能依賴父規範?當然,有一些我錯過/錯誤配置?
請參閱Full output of pod spec lint --verbose
。