我正在尝试创建一个podAPod
,它有一个“analytics”作为子空间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
具有依赖pods的包装方法。除了NewRelicAgent
,一切正常。我不能导入和使用NewRelicAgent
中的Analytics.swift
。不过,我可以在带有桥接头的主项目中使用NewRelicAgent
。经过一段时间的搜索,我发现Xcode没有为
NewRelicAgent
创建module.modulemap文件(或者应该包含在NewRelicAgent
pod中)。如上所示,
FirebaseAnalytics
具有“Modules/module.modulemap”。但是
NewRelicAgent
没有路径和文件。我读过这个article,如果
module.modulemap
并且有一个与framework同名的伞形头,Xcode就会创建DEFINES_MODULE = Yes
文件。我缺少什么?我应该如何使用
NewRelicAgent
中的AAnalytics.swift
?我正在使用cocoapods 1.4.1 beta 2
。 最佳答案
Xcode不会为二进制框架生成module.modulemap
文件。NewRelicAgent
是一个不包含模块映射的vendored_framework binary CocoaPod。其他的椰子荚类在它们的框架内包括amodule.modulemap
。
如果执行find . | grep module.modulemap
,您将看到项目中其他带有公共api的二进制cocopods包含一个Modules/module.modulemap
文件。
关于swift - 用桥接头创建Pod,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46960842/