使用 CocoaPods 在多个目标中引用 Firebase 时构建运行但存档失败

Posted

技术标签:

【中文标题】使用 CocoaPods 在多个目标中引用 Firebase 时构建运行但存档失败【英文标题】:Build runs but archive fails when referencing Firebase in multiple targets with CocoaPods 【发布时间】:2020-06-06 19:34:07 【问题描述】:

我想在 Siri Intent 中使用 Firebase。我尝试运行它并且它可以工作,但是当我尝试归档应用程序时它无法归档。

我在 macOS Catalina 10.15.3 和 CocoaPods 1.8.4 上使用 Xcode 11.2.1。

错误是:

多个命令生成“/Users/matan/Library/Developer/Xcode/DerivedData/Sendy-bqdzdmefsanhbvezkvawqizercwt/Build/Intermediates.noindex/ArchiveIntermediates/Sendy/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GTMSessionFetcher.framework”: 1)目标“GTMSessionFetcher-Core”具有创建目录命令,输出为“/Users/matan/Library/Developer/Xcode/DerivedData/Sendy-bqdzdmefsanhbvezkvawqizercwt/Build/Intermediates.noindex/ArchiveIntermediates/Sendy/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GTMSessionFetcher。框架' 2)目标“GTMSessionFetcher.default-Core”具有创建目录命令,输出为“/Users/matan/Library/Developer/Xcode/DerivedData/Sendy-bqdzdmefsanhbvezkvawqizercwt/Build/Intermediates.noindex/ArchiveIntermediates/Sendy/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/ GTMSessionFetcher.framework'

多个命令生成“/Users/matan/Library/Developer/Xcode/DerivedData/Sendy-bqdzdmefsanhbvezkvawqizercwt/Build/Intermediates.noindex/ArchiveIntermediates/Sendy/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GoogleUtilities.framework”: 1)目标“GoogleUtilities-00567490”具有创建目录命令,输出为“/Users/matan/Library/Developer/Xcode/DerivedData/Sendy-bqdzdmefsanhbvezkvawqizercwt/Build/Intermediates.noindex/ArchiveIntermediates/Sendy/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GoogleUtilities。框架' 2)目标“GoogleUtilities-ac14cd06”具有创建目录命令,输出为“/Users/matan/Library/Developer/Xcode/DerivedData/Sendy-bqdzdmefsanhbvezkvawqizercwt/Build/Intermediates.noindex/ArchiveIntermediates/Sendy/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/GoogleUtilities.框架'

Pod 文件:

project 'Sendy.xcodeproj'

# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'

abstract_target 'SendyPods' do

  use_frameworks!

  pod 'Firebase/Core'
  pod 'Firebase/Auth'
  pod 'Firebase/Storage'
  pod 'Firebase/Firestore'
  pod 'FirebaseFirestoreSwift'

  target 'Sendy' do
    pod 'Firebase/Crashlytics'
    pod 'Firebase/Analytics'
    pod 'Firebase/Performance'
    pod 'FirebaseMessaging'
    pod 'GoogleSignIn'
  end

  target 'SendyIntents'

  target 'SendyIntentsUI'

end

【问题讨论】:

【参考方案1】:

我最终将构建系统更改为在 Xcode 10 之前使用的旧版构建系统。 您可以在 File -> Workspace Settings -> Build System 切换到 Legacy Build System。

【讨论】:

使用旧版构建系统有什么缺点吗? @bze12 旧版构建系统的构建时间较慢 您是否设法更新到新的构建系统? @m1sh0 是的,但只有在我切换到迦太基之后。

以上是关于使用 CocoaPods 在多个目标中引用 Firebase 时构建运行但存档失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 Cocoapods 管理多个目标的依赖关系

CocoaPods 文件引用是多个组的成员

如何在我的 podfile 中为我的 Xcode 项目指定多个目标?

创建通用 Cocoapods 框架

具有多个 .xcconfig 文件和 cocoapods 的复杂 Xcode 项目

使用 cocoapods 在测试目标中导入 Quick/Nimble 失败