2016-09-29 61 views
4

從swift包管理器生成時是否可以在Xcode中維護組結構層次結構?我每次運行:Swift包管理器在維護組結構的同時生​​成Xcode項目

swift package generate-xcodeproj 

我失去了任何組合(沒有文件夾,這工作正常)結構我有。我經常喜歡在編碼時在代碼中使用代碼不可見的某種級別的視覺組織(即組與文件夾相對)。

+1

是不是有理由在組結構中沒有使用相同的文件系統結構作爲文件? –

+0

是的,舉個簡單的例子,想象一下爲以下對象創建一系列包含類的單獨文件:Bird,Fish,Human,所有這些文件都在獨立的Living文件中引用超類。然後,您可以組織他們: 文件:生活, 組:種 - >文件:鳥 - >文件:魚 - >文件:人類, 如果物種是一個文件夾,這不會與SPM –

回答

2

我相信,你想要的是組織你的源代碼如下所示(基於跟進評論):

Foo/Package.swift Foo/Sources/Foo/Living.swift Foo/Sources/Foo/Specifies/Bird.swift Foo/Sources/Foo/Specifies/Fish.swift Foo/Sources/Foo/Specifies/Human.swift

注意的是,這裏最重要的一點是,如果你想使用的子目錄,你必須確保你的代碼全部嵌套在Sources之內。這是一個包聲明多個目標時使用的約定,如果要爲源使用嵌套,則需要該約定。請參閱參考文獻中的source layouts部分。

如果您使用此佈局,那麼使用最新的Swift包管理器(可通過swift.org獲取),生成的Xcode項目將具有我認爲您想要的組結構。

這是我們現在知道的混淆,我們正在評估如何最好地改善事情。

+0

如果我的工作做這個,然後在'swift package generate-xcodeproj'之後的Xcode中,然後我得到你所說的,但是它們沒有被分解成組。這些文件都在同一級別,但現在被命名爲:'指定/ Bird.swift'等,而不是在組中指定' –

+0

這是SwiftPM相對最近修復的東西 - 爲了獲得這種行爲,你可以將需要從http://swift.org獲取最新的工具鏈之一 –