为CI / CD构建Xcode项目,工作区,GIT存储库和Cocoapods

时间:2017-07-21 13:47:30

标签: ios xcode git jenkins cocoapods

过去,我主要从事单一应用项目。我曾在较小的应用程序上工作过,但也从事过数十万行代码的大型项目。

但是,所有这些项目都有一个共同点。它们主要是单一的应用项目。当然,他们使用了Cocoapods,Gradle,Maven等依赖管理系统,但目前我正面临着一些我真正陌生的东西。

过去,我将我的项目放在单独的GIT存储库中。我有依赖,让我们说一个主项目(如果我开发了一个模块)和/或第三方代码。

当我想使用CI / CD(如TFS,Jenkins或Hudson)自动构建我的项目时,我所要做的就是设置一个触发器来推送到我的存储库,我很高兴。

现在我正在开发一个与众不同的iOS项目。我有一个项目有多个目标,创建不同的应用程序。不同的目标共享一些核心功能,但它们具有一些目标特定文件(如Firebase JSON,App Info.plist或资产目录)。

我现在的问题是,所有目标和核心都在一个GIT存储库中,因此当我推送时,我不知道如何区分构建哪个目标。

所以继承我的问题:我应该如何正确构建我的Xcode项目,工作区和GIT存储库?

我应该将核心和每个目标分成他们自己的项目和git repo吗?我怎么会处理cocoapods?如果已经将相同的pod添加到核心项目中,是否需要将相同的pod添加到目标中,或者在将核心添加为依赖项时是否会自动将它们添加到目标中?

我应该将核心作为pod并将其作为依赖项添加到新目标项目中,还是应该将核心项目添加为子项目?或者我应该创建一个包含核心和目标项目的工作区吗?

我希望能够启动Xcode并同时修改我的所有代码,而无需打开多个窗口。我希望有一个工作区,我可以修改核心中的某些内容,然后立即更改其中一个目标中的某些代码,然后在模拟器上运行其中一个应用程序。

我真的不确定在哪里放置哪些代码,在哪里使用项目以及如何将我的代码拆分为多个存储库。例如a" master"工作区去?在核心回购?在每个目标回购?另外一个回购?我是否需要使用子git项目(如果有类似的东西)?

我希望你明白我的意思,并可以给我一些建议。我打开每个提示,每个教程或文档,解释如何处理这样的结构。谢谢大家。

0 个答案:

没有答案