我正在尝试创建一个拥有“AAnalytics”的广告连播APod
。作为子空间。 '' AAnalytics'有多个依赖项,例如Firebase
和NewRelic
。以下是podspec
的外观:
Pod::Spec.new do |s|
s.name = 'APod'
s.version = '0.3.5'
s.summary = 'summary'
s.ios.deployment_target = '9.0'
s.tvos.deployment_target = '9.0'
s.watchos.deployment_target = '2.0'
s.static_framework = true
s.source_files = 'APod/Classes/*'
#### Subspec ####
s.subspec 'AAnalytics' do |ss|
ss.pod_target_xcconfig = { 'DEFINES_MODULE' => 'Yes' }
ss.source_files = 'Classes/AAnalytics/*'
ss.dependency 'NewRelicAgent', '~> 5.15.0'
ss.dependency 'Analytics', '~> 3.6.0'
ss.dependency 'Segment-Adjust', '~> 1.1.3'
ss.dependency 'FBSDKCoreKit', '~> 4.27.1'
ss.dependency 'Firebase/Core', '~> 4.4.0'
end
end
在AAnalytics
中,它只有一个类AAnalytics.swift
,它有一个依赖包的包装方法。除NewRelicAgent
外,一切正常。我无法在NewRelicAgent
中导入和使用Analytics.swift
。但是,我可以在主项目中使用桥接标题{。}}。
在我搜索了一段时间后,我发现Xcode没有为NewRelicAgent
创建module.modulemap文件(或者它应该包含在NewRelicAgent
pod中。)
如上所述,NewRelicAgent
有`Modules / module.modulemap'。
但FirebaseAnalytics
没有路径和文件。
我已阅读此article,如果NewRelicAgent
似乎Xcode创建了module.modulemap
文件,并且有一个与框架具有相同名称的伞形标题。
我遗失了什么?如何使用DEFINES_MODULE = Yes
中的NewRelicAgent
?我使用AAnalytics.swift
。
答案 0 :(得分:1)
Xcode不会为二进制框架生成module.modulemap
个文件。 NewRelicAgent
是vendored_framework binary CocoaPod,不包含模块地图。其他CocoaPod在其框架中包含module.modulemap
。
如果您执行find . | grep module.modulemap
,您会发现项目中包含公共API的其他二进制CocoaPods包含Modules/module.modulemap
文件。