错误描述:
pod lib lint 验证通过,pod spec lint 验证报错:- ERROR | [iOS] file patterns: The `source_files` pattern did not match any file.
错误重现:
仓库目录结构:
podspec文件位于项目根目录下。
podspec中关于源码的描述:
s.source_files = "MWBase/BaseModule/**/*.{h,m}"
错误分析:
s.source_files中描述的为相对路径,但在pod lib lint 与 pod spec lint 时,所用的参照不一样。pod lib lint 时,以podspec文件所在位置为参照;pod spec lint 时,以Git仓库的根目录为参照。
所以,在pod lib lint 时,该s.source_files的描述为源码相对于podspec文件的相对路径,该描述正确;在pod spec lint 时,该s.source_files的描述应为源码相对于Git根目录的相对路径,该描述错误,所以报错。
修复方案:
1、不同的验证方案,使用不同的s.source_files 描述。
pod lib lint 时:
s.source_files = "MWBase/BaseModule/**/*.{h,m}"
pod spec lint 时:
s.source_files = "MWBase/MWBase/BaseModule/**/*.{h,m}"
2、推荐方案:移动podspec文件至Git根目录下,并修改内容:
s.source_files = "MWBase/MWBase/BaseModule/**/*.{h,m}"