2014-03-05 45 views
1

我正在將庫(Unrar4iOS)轉換爲使用CocoaPods,但我遇到了一個編譯問題。大多數源文件都是C++文件,其中一些文件不是直接添加到項目「編譯源」列表中,而是通過#include進行編譯。當它們中的一個被自己編譯時,它會失敗,因爲它取決於文件(我知道有點奇怪)。從CocoaPods庫中編譯中排除源文件

簡而言之,我需要將文件下載到Pods目錄,但不包括它在庫的目標中。據我所知,source_files podspec同時控制。有沒有一種方法可以完全實現這一點,而不必訴諸於客戶端項目的Podfile中的鉤子?

回答

1

我不得不列出每個需要在source_files屬性中明確編譯的文件,並列出需要在preserve_paths屬性中隱式構建的文件。像這樣:

Pod::Spec.new do |s| 
    s.name   = "UnrarKit" 
    ... 
    s.source_files = "Classes/*.{mm,m,h}", 
        "Libraries/unrar/*.hpp", 
        "Libraries/unrar/archive.cpp", 
        "Libraries/unrar/arcread.cpp", 
        "Libraries/unrar/cmddata.cpp", 
        ... 
        # These files are built implicitly as dependencies 
    s.preserve_paths = "Libraries/unrar/arccmt.cpp", 
        "Libraries/unrar/coder.cpp", 
        "Libraries/unrar/log.cpp", 
        ...