objective c - Vendored framework inside of pod not recognized by project or other pods (Cocoapods/Cocoapods #3810) -
in project, reference several private pods company uses. 1 of these pods called dkkit dependent on private pod i've included called baseprokit. baseprokit contains 3 frameworks references inside of header , implementation files, believe considered vendored_frameworks
. in existing header files of baseprokit, there references these frameworks via imports #import <ppcommon/ppcommon>
work fine (usually) when compiling while solely relying on baseprokit pod. however, when dkkit included, there header alias dkkit looks when importing (baseprokit.h
) contains above import. however, in context of dkkit, seem dkkit pod unaware of existence of ppcommon framework, , sees header files' aliases referenced via pods-baseprokit. because of this, , references <ppcommon/anything>
create compilation errors (not found), , way i've been able figure out far referencing via #import "ppcommon.h"
require me adjust of imports in entire baseprokit project, , doesn't feel right.
i have included following files reference: podspec baseprokit:
s.name = "baseprokit" s.version = "1.0.5" s.source_files = "baseprokit/baseprokit.h", "baseprokit/data/*.{h,m}", "baseprokit/sensor calibration/*.{h,m}", "baseprokit/sp3d/baseballscenecontroller/*.{h,m}", "baseprokit/sp3d/sceneelements/*.{h,m,hpp,cpp}", "baseprokit/sp3d/sceneenvironment/*.{h,m}", "baseprokit/third party/devicemodeldetector.{h,m}", "baseprokit/third party/skyprokitemptymmfile.{h,mm}" s.resources = "baseprokit/satellitelibrary/satellitelibrary.bundle","baseprokit/sp3d/sp3dresources.bundle", "baseprokit/sp3d/models/vertex data/*" s.frameworks = "glkit", "opengles", "foundation", "uikit", "accelerate", "ppcommon", "satellitelibrary", "sp3d" s.library = 'c++' s.prefix_header_file = "baseprokit/baseprokit-prefix.pch" # s.public_header_files = "baseprokit/ppcommon/ppcommon.framework/headers/*.h", "baseprokit/satellitelibrary/satellitelibrary.framework/headers/*.h", "baseprokit/sp3d/sp3d.framework/headers/*.h" s.vendored_frameworks = "baseprokit/ppcommon/ppcommon.framework", "baseprokit/satellitelibrary/satellitelibrary.framework", "baseprokit/sp3d/sp3d.framework"
the podspec dkkit:
s.name = "dkkit" s.version = "1.0.0" s.source_files = 'dkkit/**/*.{h,m}' s.resources = 'dkkit/**/*.xcdatamodeld' s.dependency 'promisekit/promise', '~> 1.3.0' s.dependency 'mbprogresshud', '~> 0.9.1' s.prefix_header_contents = '#import "nsdictionary+merge.h"' s.frameworks = 'coredata' s.dependency 'baseprokit', '~> 1.0.5' s.dependency 'swinganalysiskit', '~> 1.0.0'
my project's podfile:
pod 'swinganalysiskit', :git => "https://swing-analysis-kit-url", :branch => "develop" pod 'baseprokit', :git => "https://base-pro-kit-url", :branch => "develop" pod 'dkkit', :git => "https://dkkit-url", :branch => "develop"
is there doing differently in either of podspec files (particularly 1 baseprokit) assure these frameworks can references as frameworks (rather header files) outside of pod itself?
copying cocoapods/cocoapods repository issue well: https://github.com/cocoapods/cocoapods/issues/3810
there number of issues raised on cocoapods repo related - e.g., 1824, 3161. believe has been fixed in 0.38.0.beta.1 -
added recursive support public headers of vendored frameworks automatically linked in sandbox. fixes , issue framework header directories contain sub-directories. todd casey #3161
public headers of vendored frameworks automatically linked in sandbox. allows transitive inclusion of headers other pods. vincent isambart #3161
source: changelog
Comments
Post a Comment