【问题标题】:Unable to build react native project after updating to xcode 11.0更新到 xcode 11.0 后无法构建反应原生项目
【发布时间】:2020-01-23 01:35:32
【问题描述】:

我有一个在 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.

如何解决这个问题?

【问题讨论】:

  • 我遇到了同样的错误。我们将如何解决这个问题?
  • 我已经尝试过@rizwan 这些东西,但似乎没有解决问题。问题与引入的新数据模型有关,我猜!
  • @GaneshKrishna 您可以尝试直接从 Xcode 运行 react-native 应用程序,而不是 react-native-run-ios。
  • @GaneshKrishna 先启动你的 iPhone 模拟器,然后运行项目。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    就我而言:

    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完成!

    【讨论】:

      【解决方案3】:

      两件事:

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

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,甚至回到了 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

        【讨论】:

          【解决方案5】:

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

          这些是修复上述错误的步骤:

          运行命令find . -iname findMatchingSimulator.js定位findMatchingSimulator.js文件。

          在这个文件中,修改代码

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

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

          通过这样做,模拟器错误得到解决。但仍然是另一个错误

          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 10.3 并运行命令react-native run-ios,它仍然可以工作。 希望问题很清楚。 xcode 11 中出现的这个问题的任何修复?

          【讨论】:

            【解决方案6】:

            我将"react-native" 升级到"^0.61.1",它对我有用

            【讨论】:

            • 这可能有效,但我目前无法更新到 ^0.61,正在寻找 0.59.8 版本的解决方法。谢谢!
            【解决方案7】:

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

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

            【讨论】:

            • .omo 文件似乎有问题,我能够修复“找不到 iPhone X 模拟器”错误。
            【解决方案8】:

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

            【讨论】:

            • 我已经发布了上面的更新!仍然面临 xcode 11 中的问题。如果我回到 xcode 10.3,工作正常!谢谢!
            【解决方案9】:

            不确定第一个错误,但我在升级到 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 更改了模拟器元数据格式,并且 react 原生的 findMatchingSimulator 方法与之前的格式强耦合。

            【讨论】:

            • 我正在尝试解决相同的问题,但根本没有要编辑的文件 findMatchingSimulator.js。我在 react-native 0.59.10。此解决方案适用于什么版本?
            • @shinlos RN 0.59.9,你可以在node_modules/@react-native-community/cli/build/commands/runIOS/找到这个文件
            • 第二个错误不是问题,因为第一个错误,我无法构建项目。
            • 第 36 行,如果您使用的是旧版本或 React Native。还有,谢谢!!
            • 问题在于找不到 .omo 文件。如何生成或添加它们?
            猜你喜欢
            • 2014-09-06
            • 2019-07-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-10-23
            • 2019-08-17
            • 2020-01-26
            • 1970-01-01
            相关资源
            最近更新 更多