如何在升级本机时解决`project.pbxproj`文件中的冲突?

问题描述 投票:1回答:2

我正在使用Xcode 9.4和当前反应原生版本@ 0.54.4我想将版本升级到0.55.4。

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

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

我如何理解这些冲突所指的内容以及如何安全地解决冲突?

ios xcode react-native
2个回答
1
投票

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

Git绝对是你最好的朋友。确保在开始任何合并之前,您处于新分支并完全提交,以便在您搞砸时可以轻松恢复到原始版本。

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

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

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

然后我会手动进行更改,详情如下。因为这将显示他们的变化,希望不应该那么多。

为了帮助我找到我必须做出的改变,我发现rn-diff-purge是一个非常宝贵的资源。在那里你可以找到你选择的任何两个版本的git diffreact-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 [email protected]

通过这种方式,您可以查看Xcode项目内部以查看已添加的内容以及添加内容的位置,因为git diff并不总是告诉它来自何处。

我使用react-native-git-upgrade从来没有太多运气,我更喜欢手动操作,因为我已经取得了更大的成功。


0
投票

对不起,我迟到了。

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

我通过从0.51再次升级react native来修复此问题,并且几乎一直保持我的更改而不是他们的更改。

可能应该通过选择错误的更改在文档中更详细地解释遇到的问题类型。

© www.soinside.com 2019 - 2024. All rights reserved.