2014-03-05 44 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", 
        ...