使用桥接头创建Pod

时间:2017-10-26 17:56:14

标签: swift xcode cocoapods newrelic

我正在尝试创建一个拥有“AAnalytics”的广告连播APod。作为子空间。 '' AAnalytics'有多个依赖项,例如FirebaseNewRelic。以下是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中。)

enter image description here

如上所述,NewRelicAgent有`Modules / module.modulemap'。

enter image description here

FirebaseAnalytics没有路径和文件。

我已阅读此article,如果NewRelicAgent似乎Xcode创建了module.modulemap文件,并且有一个与框架具有相同名称的伞形标题。

我遗失了什么?如何使用DEFINES_MODULE = Yes中的NewRelicAgent?我使用AAnalytics.swift

1 个答案:

答案 0 :(得分:1)

Xcode不会为二进制框架生成module.modulemap个文件。 NewRelicAgentvendored_framework binary CocoaPod,不包含模块地图。其他CocoaPod在其框架中包含module.modulemap

如果您执行find . | grep module.modulemap,您会发现项目中包含公共API的其他二进制CocoaPods包含Modules/module.modulemap文件。