我遇到了一个看似非常基本的问题,那就是找不到头文件。下面是我创建的测试POD的基本目录结构,我的要求是保留目录结构,并且root和SubPods都可以访问头文件。为了保留我正在使用SubPods的目录结构,如果没有任何类对POD验证的其他类进行任何引用,并且结构是正确的。但是如果TSTSubClasses1.h包含TSTRootClass.h,则POD lint验证失败'致命错误:'TSTRootClass.h'文件未找到。
Classes/TSTRootClass.h
Classes/TSTRootClass.m
Classes/SubPod-1/TSTSubClass1.h
Classes/SubPod-1/TSTSubClass1.m
Classes/SubPod-2/TSTSubClass2.h
Classes/SubPod-2/TSTSubClass2.m
我尝试过各种public_header_files,preserve_paths和amp;的组合。 s.xcconfig = {'HEADER_SEARCH_PATHS'=> '$ {PODS_ROOT} / **'}但没有运气。有没有解释如何解决搜索问题的地方,还有什么方法可以输出PATH细节吗?
下面详细介绍了podspec文件,源代码已被推送到repo,结构和文件确实存在。
Pod::Spec.new do |s|
s.name = "PODTest"
s.version = "0.1.0"
s.summary = "PODTest dg dghjghj fghj ."
s.description = <<-DESC
sdfg sdfg adfg sdfgn of PODTest
DESC
s.homepage = "http://myhomepage"
s.license = 'MIT'
s.author = { "Duncan Hill" => "myemail@somedomain.com" }
#s.source = { :git => "git@bitbucket.org:reponame/podtest.git"}
s.source = { :git => "git@bitbucket.org:reponame/podtest.git", :tag => s.version.to_s }
s.platform = :ios, '5.0'
s.ios.deployment_target = '5.0'
s.requires_arc = true
#s.xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/#{s.name}/**'}
s.xcconfig = { 'HEADER_SEARCH_PATHS' => '${PODS_ROOT}/**'}
s.source_files = "Classes/*.{h,m}"
s.preserve_paths = "Classes/*"
s.subspec "SubPod-1" do |ss|
ss.public_header_files = "Classes/*.h"
ss.source_files = "Classes/SubPod-1/*.{h,m}"
end
s.subspec "SubPod-2" do |ss|
ss.public_header_files = "Classes/*.h"
ss.source_files = "Classes/SubPod-2/*.{h,m}"
end
end
感谢您的帮助。
答案 0 :(得分:0)
您的子规格不能依赖于父规格,但可以依赖于其他子规格。您可能想要创建某种“核心”子规范,然后SubPod 1和2依赖于它。