我正在尝试创建一个podAPod,它有一个“analytics”作为子空间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具有依赖pods的包装方法。除了NewRelicAgent,一切正常。我不能导入和使用NewRelicAgent中的Analytics.swift。不过,我可以在带有桥接头的主项目中使用NewRelicAgent
经过一段时间的搜索,我发现Xcode没有为NewRelicAgent创建module.modulemap文件(或者应该包含在NewRelicAgentpod中)。
swift - 用桥接头创建Pod-LMLPHP
如上所示,FirebaseAnalytics具有“Modules/module.modulemap”。
swift - 用桥接头创建Pod-LMLPHP
但是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/

10-12 14:50