更新到xcode 11.0后无法构建React Native项目

时间:2019-09-23 01:27:32

标签: ios xcode react-native core-data xcode11

我有一个在react native版本0.59.8和xcode版本10.3上运行的react native项目。不知何故,我的xcode已更新到版本11.0,此后,我无法使用react-native run-ios命令来构建项目。

我尝试清理构建并再次构建。但这无济于事。

我遇到以下错误:

CoreData: annotation:  Failed to load optimized model at path '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/Frameworks/InstrumentsPackaging.framework/Versions/A/Resources/XRPackageModel.momd/XRPackageModel 9.0.omo'
error Could not find iPhone X simulator.

如何解决此问题?

9 个答案:

答案 0 :(得分:6)

不确定第一个错误,但是升级到XCode 11后,第二个错误error Could not find iPhone X simulator也有相同的问题

基本上,我将react native项目/node_modules/react-native/local-cli/runIOS/findMatchingSimulator.js中的第53行从simulator.isAvailable !== 'YES'更改为simulator.isAvailable !== true

根本原因是新的XCode 11更改了模拟器元数据格式,并对本机findMatchingSimulator方法作出了强烈反应,使其与以前的格式紧密耦合。

答案 1 :(得分:5)

我能够解决“找不到iPhone X模拟器”错误。

这些是解决上述错误的步骤:

运行命令 Entry *GetNewEntry(){ cout << "Enter name (ENTER to quit):"; string name = GetLine(); if (name == "") return NULL; Entry *newOne = new Entry; // allocate in heap newOne->name = name; cout << "Enter address: "; newOne->address = GetLine(); cout << "Enter phone: "; newOne->phone = GetLine(); newOne->next = NULL; // no one follows return newOne; } 来找到find . -iname findMatchingSimulator.js文件。

在此文件中,将代码更改为

findMatchingSimulator.js

if (simulator.availability !== '(available)' && simulator.isAvailable !== 'YES') {
        continue;
      }

通过执行此模拟器错误得以解决。但是还有另一个错误

if (simulator.availability !== '(available)' && simulator.isAvailable !== true) {
        continue;
      }

存在,这会使构建失败。如果我安装xcode 10.3并运行命令CoreData: annotation: Failed to load optimized model at path '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/Frameworks/InstrumentsPackaging.framework/Versions/A/Resources/XRPackageModel.momd/XRPackageModel 9.0.omo' ,它仍然可以工作。 希望问题解决。在xcode 11中是否可以解决此问题?

答案 2 :(得分:4)

两件事:

react-native run-ios --simulator='iPhone 11'

答案 3 :(得分:3)

就我而言:

react: 16.8.3
react-native: 0.59.9
Xcode: 11.0
  1. 添加iPhone X模拟器:打开Xcode =>窗口=>设备和模拟器=>模拟器=>按下底部的加号按钮
  2. 安装最新版本的cocoapods:sudo gem install cocoapods
  3. 在项目中重新安装cocoapods:打开项目文件夹=> ios =>删除Podfile.lockPods文件夹,build文件夹=> cd ios && pod install
  4. react-native run-ios完成!

答案 4 :(得分:1)

将XCode升级到版本11后,在XCode模拟器列表中,它仅显示ios 13模拟器可用,因此,我们需要添加以前的版本模拟器,为此,请在XCode中转到首选项->组件->并下载并安装先前版本的ios模拟器(在我的情况下为ios 11.0),这样做之后,它必须在可用的模拟器列表中显示其他模拟器。清除所有缓存并重新运行react-native run-ios命令,该命令现在应该可以使用了。

答案 5 :(得分:1)

尝试运行指定模拟器的版本。

react-native run-ios --simulator="iPhone 11 Pro Max"

答案 6 :(得分:0)

我将"react-native"升级为"^0.61.1",并且对我有用

答案 7 :(得分:0)

我遇到了同样的问题,甚至回到了xCode 10.3...。然后我遇到了这个https://github.com/react-native-community/cli/pull/414。在我看来,他们可能已解决了该问题,并且我正在使用旧版本的CLI运行。继续删除我的锁定文件中的条目,然后运行npm install。现在工作。 CLI最高为1.11.2 https://github.com/react-native-community/cli

答案 8 :(得分:0)

运行可以在终端上运行xcrun simctl list devices,以确保您安装了iPhone X模拟器。如果您在列表中看不到它,则需要通过Window -> Devices and Simulators -> Simulators将其添加到Xcode中(单击左下方的+)