gpt4 book ai didi

ios - CocoaPods:如何让多个工作区引用相同的 pod

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:32:05 31 4
gpt4 key购买 nike

我有几个 Xcode 工作区,每个工作区包含几个项目。这些工作区中的项目是相关的,需要引用几个相同的 CocoaPods。

我想创建一个公共(public)目录,我可以在其中下载我使用的每个 pod 的一个副本,但我不知道如何设置 podfile 以便它独立处理每个工作区。发生的情况是,当命名两个工作区时,第二个工作区获得两个非 pod 项目。

为了简化事情,我创建了两个简单的项目,FooProject 和 BarProject,每个项目都包含在自己的工作区(FooWorkspace 和 BarWorkspace)中。为清楚起见,我的目录结构如下所示:

+ Common
- Podfile
- Podfile.lock
+ Pods

+ Workspace1
- FooProject.xcodeproj
- FooWorkspace.xcworkspace

+ Workspace2
- BarProject.xcodeproj
- BarWorkspace.xcworkspace

这是我的播客文件:

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'

def common_pods
pod "ConsoleBanner"
end

target 'FooProject' do
project '../Workspace1/FooProject.xcodeproj'
workspace '../Workspace1/FooWorkspace.xcworkspace'
common_pods
end

target 'BarProject' do
project '../Workspace2/BarProject.xcodeproj'
workspace '../Workspace2/BarWorkspace.xcworkspace'
common_pods
end

这几乎可以解决问题。它只下载 pod 一次并将其放在该文件下的共享目录中。 唯一的问题是它更新 BarWorkspace 以不仅包括 BarProject 和 Pods 项目,还包括 FooProject。podfile 中引用的第一个项目/工作区正常工作。

我尝试添加 inherit! :none 在目标 block 中,但它没有任何效果。我还考虑过在同一目录中创建单独的 podfile 作为对等文件,但似乎 podfile 必须准确地命名为 podfile

如何让来自不同工作区的项目引用相同的 pod 文件?

最佳答案

我将根据过去几天的研究工作回答我自己的问题。希望这在某些时候对其他人有用。

您似乎无法创建适用于多个工作空间的 podfile。但我越想越觉得,也许这就是应该的样子。

一个 podfile 映射到一组 pod。每个 pod 都有一个特定的版本号。据推测,您可能从事的不同项目可能需要相同 pod 的不同版本。例如,假设项目 1 使用 Pod X,版本 3.0。但项目 2 由于遗留要求,不能使用 3.0 版的 Pod X,而必须使用 2.0 版。

在这种情况下,您需要两个不同的 podfile,每个都指向完全不同的 pod 集合。

如果您有一组紧密关联的项目,您可以保证它们都使用它们所依赖的每个 pod 的完全相同的版本,那么将这些项目全部放在一个工作区中也许是有意义的。这就是我最终所做的。

我可能对其中的某些细节有误,如果是这样,我欢迎更正。我希望这篇文章对其他开始使用 CocoaPods 的人有用。

关于ios - CocoaPods:如何让多个工作区引用相同的 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685057/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com