TIL:应对开发环境问题
在开发过程中,不可避免地需要对开发环境进行一些更改。 例如,更新Xcode,更新您的Cocoapods版本,集成新的依赖项。
它似乎常常很棒,例如……可能出什么问题了?!
然后突然间,您尝试运行您的项目,并且似乎无关的错误浮出水面,这些是您之前从未见过且不知道如何解决的。
当这些事情发生时,我有两个问题要问自己:
- 我该如何解决?
- 为什么会这样呢?
我的直觉通常是先回答第一个问题。 我只是不想再被阻止,我只想修复它并继续前进。
但是……我内心深处知道,后一个问题更为重要,也很难回答。
因此,例如,我遇到了很多错误,在这种情况下,我似乎能够解决一个错误,然后又出现另一个错误。
pods are integrated into targets that do not have the same Swift version
-
Duplicate interface definition for class 'Mixpanel'
-
ADiOSUtilities required by Vida (Swift 3.0), VidaTests (Swift 3.0.1), EarlGreyVidaTests (Swift 3.0
)ADiOSUtilities required by Vida (Swift 3.0), VidaTests (Swift 3.0.1), EarlGreyVidaTests (Swift 3.0
可能导致或未引起此更改的更改与以下更改相关,这些更改在几周的时间内由不同的开发人员合并:
- 合并了新的库:Fastlane,EarlGrey
- Cocoapods从1.0.1更新为1.2.0
解决方法:
- 隔离错误,并一次解决一个。 例如,我意识到,当我切换到具有可可豆荚早期版本的其他分支时,我需要通过声明以下内容来指定可可豆荚的版本:
pod _1.0.1_ install
- 然后,重复的接口定义是因为我们在整个项目中以不同的方式声明了Mixpanel库-需要使每个文件之间保持一致。
- 最后,我需要指定我们不需要使用传统的Swift语言
- 最重要的是,每次构建时,我都删除了派生数据文件夹,清理了项目,并重置了模拟器。
这就是数小时的车轮旋转的平凡细节…
我的主要收获:
我仍然没有弄清每个出现的问题的根本原因,但是我知道,当多个人对同一个环境进行更改时,可能会产生一系列负面影响。
我建议:
- 一次更新一件事,并确保每个PR都独立于其他环境变化
- 当您处于项目中间时,请勿更新环境或工具,请等到您处于自然的停顿点。 或者,制定一个商定的有机停止点。
- 当您对项目进行更改以影响其他开发人员时,请确保他们知道即将发生的事情🙂
然后至少将头撞到墙上也会感觉不错: