升级React Native时如何解决`project.pbxproj`文件中的冲突?

时间:2019-02-01 13:39:43

标签: ios xcode react-native

我正在使用Xcode 9.4,当前使用的是本机版本@ 0.54.4,我想将该版本升级到0.55.4。

使用react-native-git-upgrade升级项目时,在project.pbxproj中看到一些未合并的冲突。我的某些设置与新版本中的更改冲突。

我尝试了所有可能解决冲突的方法。但是X代码仍然显示错误could not load the project,并且它不允许我构建项目。

我如何理解这些冲突指的是什么,如何安全地解决冲突?

2 个答案:

答案 0 :(得分:1)

不幸的是,没有解决冲突的神奇方法。我希望有。该文件由Xcode管理,根据我的个人经验,我发现您可以轻松地执行合并操作。

Git绝对是您最好的朋友。确保在开始任何合并之前,您处于新分支上并完全提交,这样,如果您搞砸了,就可以轻松返回到原始版本。

我通常要做的是保留project.pbxproj的原始版本,然后然后在Xcode中手动进行更改。我知道这听起来并不理想,但这确实意味着您应该能够在Xcode中打开项目,尽管您的项目可能尚未运行-

如果您不确定要保留哪个版本,我会保留我们的,因为这是您的project.pbxproj原始版本。来自documentation

  

您可以将“我们的”视为“您的团队”,将“他们的”视为“ React Native开发团队”。

然后,我将手动进行更改,如下所述。这样可以显示更改,并且希望不会有那么多更改。

为帮助我找到必须进行的更改,我发现rn-diff-purge是宝贵的资源。您可以在其中找到所选git diff的任何两个版本的react-native。 (这省去了创建两个项目,然后自己比较它们的时间,节省了很多时间。)

当前您正在从0.54.4升级到0.55.4,此链接显示了这些版本之间的差异

https://github.com/pvinis/rn-diff-purge/compare/version/0.54.4...version/0.55.4

要获得更多帮助,您可以创建特定版本react-native的项目,使用以下命令将创建版本0.55.4的项目。

react-native init newproject --version react-native@0.55.4

那样,您可以查看Xcode项目内部,以查看添加的内容以及添加的位置,因为git diff并不总是知道其来源。

使用react-native-git-upgrade从来没有多好运,我更喜欢手动执行,因为这样可以取得更大的成功。

答案 1 :(得分:0)

对不起,最新更新。

从0.51更新到版本0.55的本机响应后,一切似乎都在本地模式下正常运行。但是生产构建失败。

我通过将react native从0.51再次升级并保持更改而不是几乎所有时间来解决此问题。

通过选择错误的更改,文档中可能会出现有关问题种类的详细解释。