【问题标题】:Xcode 12, React Native app, no simulators displayed anymoreXcode 12,React Native 应用程序,不再显示模拟器
【发布时间】:2021-01-05 02:44:00
【问题描述】:

我正在开发一个 React Native 应用程序(一直是 expoject),我最近升级到 Xcode 12,但从那以后我的模拟器从我的不同方案列表中消失了:

但是当我运行xcrun simctl list 时,我可以在列表中看到模拟器和运行时:

== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
iPhone 5 (com.apple.CoreSimulator.SimDeviceType.iPhone-5)
iPhone 5s (com.apple.CoreSimulator.SimDeviceType.iPhone-5s)
iPhone 6 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus)
iPhone 6 (com.apple.CoreSimulator.SimDeviceType.iPhone-6)
iPhone 6s (com.apple.CoreSimulator.SimDeviceType.iPhone-6s)
iPhone 6s Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-6s-Plus)
iPhone SE (1st generation) (com.apple.CoreSimulator.SimDeviceType.iPhone-SE)
iPhone 7 (com.apple.CoreSimulator.SimDeviceType.iPhone-7)
iPhone 7 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-7-Plus)
iPhone 8 (com.apple.CoreSimulator.SimDeviceType.iPhone-8)
iPhone 8 Plus (com.apple.CoreSimulator.SimDeviceType.iPhone-8-Plus)
iPhone X (com.apple.CoreSimulator.SimDeviceType.iPhone-X)
iPhone Xs (com.apple.CoreSimulator.SimDeviceType.iPhone-XS)
iPhone Xs Max (com.apple.CoreSimulator.SimDeviceType.iPhone-XS-Max)
iPhone Xʀ (com.apple.CoreSimulator.SimDeviceType.iPhone-XR)
iPhone 11 (com.apple.CoreSimulator.SimDeviceType.iPhone-11)
iPhone 11 Pro (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro)
iPhone 11 Pro Max (com.apple.CoreSimulator.SimDeviceType.iPhone-11-Pro-Max)
iPhone SE (2nd generation) (com.apple.CoreSimulator.SimDeviceType.iPhone-SE--2nd-generation-)
iPod touch (7th generation) (com.apple.CoreSimulator.SimDeviceType.iPod-touch--7th-generation-)
iPad 2 (com.apple.CoreSimulator.SimDeviceType.iPad-2)
iPad Retina (com.apple.CoreSimulator.SimDeviceType.iPad-Retina)
iPad Air (com.apple.CoreSimulator.SimDeviceType.iPad-Air)
iPad mini 2 (com.apple.CoreSimulator.SimDeviceType.iPad-mini-2)
iPad mini 3 (com.apple.CoreSimulator.SimDeviceType.iPad-mini-3)
iPad mini 4 (com.apple.CoreSimulator.SimDeviceType.iPad-mini-4)
iPad Air 2 (com.apple.CoreSimulator.SimDeviceType.iPad-Air-2)
iPad Pro (9.7-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--9-7-inch-)
iPad Pro (12.9-inch) (1st generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro)
iPad (5th generation) (com.apple.CoreSimulator.SimDeviceType.iPad--5th-generation-)
iPad Pro (12.9-inch) (2nd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---2nd-generation-)
iPad Pro (10.5-inch) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--10-5-inch-)
iPad (6th generation) (com.apple.CoreSimulator.SimDeviceType.iPad--6th-generation-)
iPad (7th generation) (com.apple.CoreSimulator.SimDeviceType.iPad--7th-generation-)
iPad Pro (11-inch) (1st generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch-)
iPad Pro (12.9-inch) (3rd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---3rd-generation-)
iPad Pro (11-inch) (2nd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--11-inch---2nd-generation-)
iPad Pro (12.9-inch) (4th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Pro--12-9-inch---4th-generation-)
iPad mini (5th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-mini--5th-generation-)
iPad Air (3rd generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Air--3rd-generation-)
iPad (8th generation) (com.apple.CoreSimulator.SimDeviceType.iPad--8th-generation-)
iPad Air (4th generation) (com.apple.CoreSimulator.SimDeviceType.iPad-Air--4th-generation-)
Apple TV (com.apple.CoreSimulator.SimDeviceType.Apple-TV-1080p)
Apple TV 4K (com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-4K)
Apple TV 4K (at 1080p) (com.apple.CoreSimulator.SimDeviceType.Apple-TV-4K-1080p)
Apple Watch - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-38mm)
Apple Watch - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-42mm)
Apple Watch Series 2 - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-38mm)
Apple Watch Series 2 - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-2-42mm)
Apple Watch Series 3 - 38mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-38mm)
Apple Watch Series 3 - 42mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-3-42mm)
Apple Watch Series 4 - 40mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-40mm)
Apple Watch Series 4 - 44mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-4-44mm)
Apple Watch Series 5 - 40mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-40mm)
Apple Watch Series 5 - 44mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-5-44mm)
Apple Watch SE - 40mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-SE-40mm)
Apple Watch SE - 44mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-SE-44mm)
Apple Watch Series 6 - 40mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-6-40mm)
Apple Watch Series 6 - 44mm (com.apple.CoreSimulator.SimDeviceType.Apple-Watch-Series-6-44mm)
== Runtimes ==
iOS 14.0 (14.0 - 18A372) - com.apple.CoreSimulator.SimRuntime.iOS-14-0
tvOS 14.0 (14.0 - 18J383) - com.apple.CoreSimulator.SimRuntime.tvOS-14-0
watchOS 7.0 (7.0 - 18R382) - com.apple.CoreSimulator.SimRuntime.watchOS-7-0

如果我在 Xcode 中创建一个新项目,我可以看到模拟器。

我尝试将构建、常规和签名设置作为方案设置与另一个看到模拟器的项目进行比较,但找不到任何相关差异。

我可以在设备上构建(所以我猜项目的设置还不错)。

我还尝试了 Xcode (12.6) 的最新 beta 版本,结果相同。 我做了几次干净的卸载,也重新安装了 XCode 12。

我尝试为 iOS 12.0 和 12.4 安装模拟器,将应用程序的目标设置为 12.0、12.4、14.0。所有模拟器均已安装并可用于其他项目,但未针对该项目显示。

这似乎是一个设置问题,但我无法弄清楚缺少什么/设置错误。

【问题讨论】:

  • 虽然我不确定根本原因是什么,但我处于类似情况并决定并排安装 11.7 以解决我的项目的另一个问题。完成后,我重新打开 Xcode 12 并恢复了我的模拟器列表。
  • @ElliotRodriguez:我尝试并并排安装了 Xcode 11.7,但我在 Xcode 11.7 或 beta 12.6 中都看不到任何模拟器,即使不幸的是我下载了 iOS 12.0 模拟器。当我运行 xcrun simctl list 我有这个:== Runtimes == iOS 12.0 (12.0 - 16A366) - com.apple.CoreSimulator.SimRuntime.iOS-12-0 (unavailable, failed to open liblaunch_sim.dylib) iOS 14.0 (14.0 - 18A5357e) - com.apple.CoreSimulator.SimRuntime.iOS-14-0 ... 我仍然在其他项目中看到它们。

标签: xcode react-native ios-simulator simulator xcode12


【解决方案1】:

对我来说,问题是我已将 iOS Deployment Target to 13.5 设置为最大值 iOS version was 13.4 - 我想我不小心通过代码而不是来自 xcode GUI 来做到这一点

打开YourProj.xcworkspace => 并在“项目”选项卡下选择您的项目名称,然后更改iOS Deployment Target 以匹配您的模拟器已安装的名称

【讨论】:

    【解决方案2】:

    在我的例子中,Xcode 项目中的架构设置似乎在 Xcode 12 UI 中不再可见。

    > grep -r VALID_ARCHS ios
    ios/MyProject.xcodeproj/project.pbxproj:  VALID_ARCHS = "arm64 arm64e";
    ios/MyProject.xcodeproj/project.pbxproj:  VALID_ARCHS = "arm64 arm64e";
    

    用 vim 删除那些,然后在 Xcode 中重新打开项目,模拟器又开始出现了。

    【讨论】:

      【解决方案3】:

      我在使用 Xcode 11.7 运行良好的现有项目中遇到了同样的问题。升级到 Xcode 12 后,我无法选择模拟器。当我创建一个新项目时,我能够在模拟器中运行它,因此我仔细比较了两个项目之间的构建设置。

      我注意到新(工作)项目中的 Architectures 值设置为 $(ARCHS_STANDARD),而我现有项目中的相同值设置为 arm64。将值更改为 $(ARCHS_STANDARD) 解决了问题。

      在 Xcode 中选择您的项目后,选择您的构建目标,然后选择构建设置选项卡。确保选择 All 而不是 Basic,然后选择 Architectures/Architectures。单击其值并将其设置为 $(ARCHS_STANDARD)。您可能会发现您可以选择一个名为“标准架构”的值,该值也会将其设置为所需的值。

      您现在应该可以在窗口顶部的模式选择器中从通常的模拟器列表中进行选择。

      【讨论】:

      • 不错!是的,这样做可以解决问题,我现在看到模拟器并且可以部分构建。在设备上构建可以正常工作,虽然模拟器的构建失败,但这是因为我猜的项目。我有这个错误:ld: library not found for -lDoubleConversion 我们之前找到的唯一解决方案是将架构设置为arm64, arm64e :s
      猜你喜欢
      • 1970-01-01
      • 2018-06-11
      • 2017-01-12
      • 2017-01-29
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      相关资源
      最近更新 更多