我使用的是Xcode 9.4和当前react本机版本@0.54.4,我想将版本升级到0.55.4。
当我使用react-native-git-upgrade
升级我的项目时,我在project.pbxproj
中看到了一些未合并的冲突。有些设置是我自己的,与新版本中的更改相冲突。
我尝试了所有可能的方法来解决冲突。但是X代码仍然显示错误could not load the project
,并且它不允许我构建我的项目。
我如何理解这些冲突指的是什么?我如何安全地解决这些冲突?
不幸的是,没有解决冲突的神奇方法。我希望有。该文件由Xcode管理,根据我的个人经验,我发现在执行合并时可以很容易地将其弄乱。
Git
绝对是你最好的朋友。在开始任何合并之前,请确保你在一个新的分支上并完全提交,这样,如果你搞砸了,你就可以很容易地回到原来的版本。
我通常所做的是保留project.pbxproj
和的原始版本,然后在Xcode中手动进行更改。我知道这听起来并不理想,但这确实意味着你应该能够在Xcode中打开项目,尽管你的项目可能还没有运行。
如果您不清楚要保留哪个版本,我会保留我们的,因为这是您的project.pbxproj
的原始版本。来自文件:
你可以想到"我们的";作为";你的团队;以及";他们的";作为";React Native开发团队";。
然后我将手动进行更改,如下所述。因为这将显示他们的变化,希望不会那么多。
为了帮助我找到我必须做的更改,我发现React Native Upgrade Helper是一个宝贵的资源。在那里,您可以找到您选择的任何两个版本的react-native
中的一个git diff
。(这节省了您创建两个项目,然后自己进行比较的时间,大大节省了时间。)
目前您正在从0.54.4
升级到0.55.4
,此链接显示了这些版本之间的差异
https://react-native-community.github.io/upgrade-helper/?from=0.54.4&至=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
时从来没有遇到过太多的运气,我更喜欢手动操作,因为我用这种方式做得更成功了。
将react native从0.51更新到0.55版本后,一切似乎都在本地模式下正常工作。但是生产构建失败了。
我通过从0.51再次升级react native来解决这个问题,并几乎一直保留我的更改而不是他们的更改。
也许在文档中应该有更详细的解释,说明通过选择错误的更改而遇到的问题。