我正在转换库(Unrar4iOS)以使用CocoaPods,但我遇到了编译问题。大多数源文件都是C ++文件,其中一些文件没有直接添加到项目列表"编译源",但它们是通过#include
编译的。当其中一个被自己编译时,它会失败,因为它依赖于#include
它的文件(我知道有点奇怪)。
简而言之,我需要将文件下载到Pods目录中,但不要将其包含在库的目标中。据我所知,source_files
podspec同时控制两者。有没有办法在库方面实现这一点,而不需要在客户端项目的Podfile中使用某些钩子?
答案 0 :(得分:2)
我必须列出需要在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",
...