2014-01-16 31 views
12

我創建一個簡單的私人艙與本教程:http://pablin.org/2013/05/18/cocoapods-for-internal-libraries/保留文件夾結構可可豆莢

其實我的回購剛一組類

一切正常,我可以完全安裝我的吊艙。唯一的問題是所有文件都安裝在主文件夾內部,所以它不保留文件夾結構。

我有這樣的文件夾結構,命名庫:myRepository

Classes 
| 
------ foo.h and foo.m 
------ Controller Layer 
     | 
     ----------- foo2.h and foo2.m 
------ ViewLayer 
     | 
     ----------- foo3.h and foo3.m 

所有文件都被一個叫myRepository文件夾內複製。

這是我podspec:

Pod::Spec.new do |s| 

    s.name   = "fooClasses" 
    s.version  = "0.0.1" 
    s.summary  = "Common clases of foo" 

    s.homepage  = "http://foo.com" 

    s.license  = 'BSD' 
    s.license  = { :type => 'Foo License', :file => 'LICENSE.txt' } 

    s.author  = { "me" => "[email protected]" } 

    s.platform  = :ios, '7.0' 

    s.source  = { :git => "https://github.com/myRepository.git", :tag => "0.0.1" } 

    s.source_files = "**/*.{h,m}" 

    s.requires_arc = true 
end 

我試圖與s.preserve_path = 「*」 和s.preserve_path = 「類」

任何想法?

謝謝!!!!!!!!

+2

Cocoapods v0.36修復了這個問題https://github.com/CocoaPods/CocoaPods/pull/2647 – onmyway133

回答

12

那麼我已經實現了與subspec創建我自己的文件夾。

您可以創建一個subspec這一行:

s.subspec 'folder name' do |ss| 
    ss.source_files = 'files' 
    ss.frameworks = 'frameworks' 
end 

的ss.frameworks不是強制性的。

您可以看到的CocoaPods郵件列表中的完整的答案:

https://groups.google.com/forum/#!topic/cocoapods/0kV8r2xnqA8

感謝mcitrrus

我更願意遵循AFNetworking莢規格:

https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking.podspec

+0

我不認爲這是OP試圖實現的目標。 Subspecs旨在模塊化您的Pod - 即。你可以有可選的組件。我想他只是想在Pods項目中維護某種文件夾層次結構。 'preserve_path'似乎並沒有做到這一點,因爲根據文檔'默認情況下,CocoaPods刪除所有不匹配任何其他文件模式的文件。' –

+0

@itsthejb好了,答案是OP的人: ] – onmyway133

+0

我個人不認爲這是你想要的,不應該練習。 subspec不參考文件夾,因爲iOS不使用名稱間距。我相信subspecs是一個吊艙內的吊艙。以AFNetworking爲例。 –

0

這個答案/問題由於0.36版本cocoapods的變化而過時。

PR 2647只要您使用「:path」窗格,就會添加默認分組行爲。從1.3.1開始,它的行爲是它將遍歷/ Classes/...結構,直到它看到一個文件或第二個子文件夾,並從那裏開始在.xcodeproj文件中分組。