CocoaPod - The `public_header_files` pattern did not match any file -
i storing pre-compiled framework in amazon s3. "pod spec lint" fails following errors.
- error | [ios] file patterns: `source_files` pattern did not match file. - error | [ios] file patterns: `public_header_files` pattern did not match file.
running verbose option shows downloading s3, instead of copying downloaded framework, cocoapod copying framework '~//library/caches/cocoapods/pods/external/' directory. turns out empty framework. because of this, "pod spec lint" fails above mentioned errors.
here relevant part "pod spec lint" output
http download
$ /usr/bin/curl -f -l -o /var/folders/qv/ld8pxb7d0_s1xn1mztqktj8h0000gn/t/d20160601-3868-fmxlyy/file.tgz https://s3.amazonaws.com/framework.ios.sdk/myframework.framework.1.0.tar.gz --create-dirs --netrc% total % received % xferd average speed time time time current dload upload total spent left speed
100 67562 100 67562 0 0 74480 0 --:--:-- --:--:-- --:--:-- 74407
$ /usr/bin/tar xfz /var/folders/qv/ld8pxb7d0_s1xn1mztqktj8h0000gn/t/d20160601-3868-fmxlyy/file.tgz -c /var/folders/qv/ld8pxb7d0_s1xn1mztqktj8h0000gn/t/d20160601-3868-fmxlyy copying myframework
/users/xxx/library/caches/cocoapods/pods/external/myframework/01a6da9f1381e3dbc8db63de5409d451-2eea2
to
../../../../private/var/folders/qv/ld8pxb7d0_s1xn1mztqktj8h0000gn/t/cocoapods/lint/pods/myframework
running pre install hooks
when manually copied framework '~/library/caches/cocoapods/pods/external' directory validation goes through.
here podspec file.
pod::spec.new |s| s.name = 'myframework' s.version = '1.0' s.summary = 'myframework' s.description = 'myframework' s.source = { "http"=> "https://s3.amazonaws.com/framework.ios.sdk/myframework.1.0.tar.gz"} # s.social_media_url = 'https://twitter.com/<twitter_username>' s.platform = :ios, "8.0" s.source_files = 'myframework/classes/**/*','myframework.framework/headers/*.h' s.ios.public_header_files = 'myframework.framework/headers/*.h' s.ios.vendored_frameworks = 'myframework.framework' s.ios.frameworks = 'coregraphics', 'foundation', 'mobilecoreservices', 'security', 'systemconfiguration', 'uikit' s.dependency 'afnetworking', '~> 3.0' s.dependency 'mantle', '~>2.0.4' s.dependency 'awscore' s.dependency 'awss3' end
is there missing in podspec file. appreciated.
thanks!
your source_files
property must contain project's source files, like
s.source_files = 'myframework/classes/**/*.{h,m,c}'
and public_header_files
must refer headers in project, not in result framework, like
s.ios.public_header_files = 'myframework/classes/publicheaders/*.h'