Xcode 12 Beta-找不到模拟器运行时

时间:2020-07-13 11:54:51

标签: ios xcode simulator xcode12

我已经安装了Xcode 12 beta2。我试图通过Mac OS Catalina上的Jenkins运行我们的xamarin项目。它失败,并显示以下错误。当我从Mac Visual Studio构建相同的项目时,它成功完成,没有任何错误。

SplashViewController.storyboard : error :
 iOS 14.0 (14.0 - 18A5319g) - com.apple.CoreSimulator.SimRuntime.iOS-14-0 (unavailable, failed to open liblaunchsim.dylib) ==> not available:
  Error Domain=com.apple.CoreSimulator.SimError Code=401 "The iOS 14.0 simulator runtime is not available."
  UserInfo={NSLocalizedDescription=The iOS 14.0 simulator runtime is not available.,
   NSUnderlyingError=0x7fef8847b520 {Error Domain=NSPOSIXErrorDomain Code=53 "Software caused connection abort"
  UserInfo={NSLocalizedFailureReason=XPC error talking to SimLaunchHostService: <error: 0x7fff97d649a0> { count = 1, transaction: 0, voucher = 0x0,_

我也做了xcrun simctl list来查看Xcode 12 beta可用的运行时模拟器。 它显示以下列表,但在构建时失败。

==运行时==

iOS 14.0 (14.0 - 18A5319g) -
com.apple.CoreSimulator.SimRuntime.iOS-14-0
tvOS 14.0 (14.0 - 18J5331g) -
com.apple.CoreSimulator.SimRuntime.tvOS-14-0
watchOS 7.0 (7.0 - 18R5327h) -
com.apple.CoreSimulator.SimRuntime.watchOS-7-0

==设备==

当我打开Xcode设置并单击组件->模拟器时,在列表中没有看到 iOS 14

有人可以帮我解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

我在Jenkins上使用Xcode 12 Beta构建类似的问题。当我使用jenkins用户在Terminal中运行 xcrun simctl list 时,我看到了

== Runtimes ==
iOS 14.0 (14.0 - 18A5351d) - com.apple.CoreSimulator.SimRuntime.iOS-14-0
tvOS 14.0 (14.0 - 18J5364d) - com.apple.CoreSimulator.SimRuntime.tvOS-14-0
watchOS 7.0 (7.0 - 18R5361c) - com.apple.CoreSimulator.SimRuntime.watchOS-7-0

但是,如果我将相同的simctl命令放入Jenkins作业中,则结果为

== Runtimes ==
iOS 14.0 (14.0 - 18A5351d) - com.apple.CoreSimulator.SimRuntime.iOS-14-0 (unavailable, failed to open liblaunch_sim.dylib)
tvOS 14.0 (14.0 - 18J5364d) - com.apple.CoreSimulator.SimRuntime.tvOS-14-0 (unavailable, failed to open liblaunch_sim.dylib)
watchOS 7.0 (7.0 - 18R5361c) - com.apple.CoreSimulator.SimRuntime.watchOS-7-0 (unavailable, failed to open liblaunch_sim.dylib)

尽管我找不到解决方案,但找到了解决方法。如果我停止让Jenkins作为启动守护进程运行,并从终端手动启动它,那么Xcode beta版本的运行会很好。

# Stop Jenkins
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

# Impersonate jenkins user
sudo su - jenkins

# Tell Jenkins where its home dir is located
export JENKINS_HOME=/Users/Shared/Jenkins/Home

# Start Jenkins instance
/Library/Application\ Support/Jenkins/jenkins-runner.sh

以上所有路径均为默认路径。如果您碰巧不一样,则可以在文件/Library/LaunchDaemons/org.jenkins-ci.plist

中找到正确的值。

答案 1 :(得分:2)

此命令可以解决此问题:

sudo xcrun simctl shutdown all && sudo xcrun simctl erase all

我在这里找到它:https://developer.apple.com/forums/thread/653807

答案 2 :(得分:2)

我在使用默认安装的Jenkins的Xcode 12.1上看到此问题。这些解决方案都不起作用,“手动运行sh脚本”导致Jenkins甚至根本无法加载。

我正在对如下所示的设备(而非模拟器)使用构建命令:

/usr/bin/xcodebuild -scheme MyApp -workspace MyApp.xcworkspace -configuration Debug clean build DEVELOPMENT_TEAM=XXXXXXXXXX -allowProvisioningUpdates test -destination platform=iOS,id=theIDofADeviceNotASimulator

当我从常规管理控制台用户的命令提示符处而不是从Jenkins运行命令时,此命令运行良好。

Jenkins通常以其自己的 / users / Shared / Jenkins 帐户安装。

此外,我看到在Xcode 12.2发行说明中(我在12.1上),仍然存在一个“已知问题”,说从非根目录运行simctl或xcodebuild等命令行工具时,模拟器可能不可用LaunchDaemon,或者以与当前用户不同的用户身份启动(例如,,使用sudo或Launchctl )。 (62188195)-https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-beta-release-notes

该问题似乎在设备和模拟器上都存在。

更新 解决方案是在普通用户下使用homebrew重新安装Jenkins,让他们自动登录,然后在用户登录时使用附加到该用户的LaunchAgent启动jenkins。

Jenkins不再支持使用“ jenkins用户”安装并作为LaunchDaemon运行,Xcode也不再支持。