cvu
cvu

Reputation: 502

Framework header files not included in pod lib lint

I am trying to add VPX framework that is required for toxav to be compiled. I have my pod spec file like so:

Pod::Spec.new do |s|
 s.name             = "toxcore-ios"
 s.version          = "0.1.3"
 s.summary          = "Cocoapods wrapper for toxcore"
 s.homepage         = "https://github.com/dvor/toxcore-ios"
 s.license          = 'GPLv3'
 s.author           = { "Dmytro Vorobiov" => "[email protected]" }
 s.source           = {
  :git => "https://github.com/dvor/toxcore-ios.git",
  :tag => s.version.to_s,
  :submodules => true
 }

 s.platform     = :ios, '7.0'
 s.requires_arc = true

 s.source_files = 'toxcore/toxcore/*.{c,h}', 'toxcore/toxencryptsave/*.{c,h}', 'toxcore/toxav/*.{c,h}'
 s.public_header_files = 'toxcore/toxcore/*.h', 'toxcore/toxav/*.h'
 s.dependency 'libsodium', '~> 1.0.1'
 s.dependency 'libopus', '~> 1.1'
 s.ios.vendored_frameworks = 'VPX.framework'
 s.prepare_command = 'libvpx/build/make/iosbuild.sh'
end

For what it's worth, the prepare_command creates the VPX.framework. I tried adding the VPX.framework files to the s.source_files and s.public_header_files, however they still receive the same error below when running pod lib lint. I'm not even sure if it's necessary to add it to the s.source_files or s.public_header_files since I believe the s.ios.frameworks already takes care of that?

toxcore/toxav/toxav.h:34:10: fatal error: 'vpx/vpx_image.h' file not found

Upvotes: 0

Views: 1591

Answers (2)

cvu
cvu

Reputation: 502

I figured out my issue. The VPX framework path was listed as below: VPX.framework/Headers/vpx/{files.h}

When we use vendored_frameworks it actually only looks under the Header folder for the header files. So instead we had this

VPX.framework/Headers/{looks here}

In which case I had to move the files under vpx , to Header

Upvotes: 2

Stephen Vinouze
Stephen Vinouze

Reputation: 2075

I came across the same issue this week while linking frameworks in my newly created pod. You should use the --use-libraries option while using lint:

pod lib lint --use-libraries

This option is also available while pushing your pod to the master Cocoapods repository or your own repository.

pod repo push REPO_NAME POD_NAME.podspec --use-libraries

Hope this helps!

Upvotes: 3

Related Questions