Xcode 12 Beta - 找不到模拟器运行时
Xcode 12 Beta - Cannot find simulator runtime
我已经安装了 Xcode 12 beta 2。我试图通过 Jenkins 在 Mac OS Catalina 上 运行 我们的 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
查看了 运行 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 在列表中:
谁能帮我解决这个问题?
我在 Jenkins 上使用 Xcode 12 beta 构建时遇到了类似的问题。当我在终端中使用 jenkins 用户 运行 xc运行 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)
虽然我找不到解决方案,但我找到了解决方法。如果我从 运行ning 停止 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
中找到正确的值
此命令可以解决问题:
sudo xcrun simctl shutdown all && sudo xcrun simctl erase all
我在 Xcode 12.1 上使用默认安装的 Jenkins 看到了这个问题。 None 这些解决方案有效,“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)中看到仍然存在一个“已知问题”,指出当 运行ning command-line 工具,例如来自 non-root LaunchDaemon 的 simctl 或 xcodebuild,或者当以与当前用户不同的用户身份启动时(例如,使用 sudo 或 launchctl)。 (62188195) - https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-beta-release-notes
该问题似乎存在于设备和模拟器上。
更新
解决方案是在您的普通用户下使用自制软件重新安装 Jenkins,让它们 auto-login,然后使用附加到该用户的 LaunchAgent 在您的用户登录时启动 jenkins。
Jenkins 不再支持使用“jenkins 用户”和 运行ning 作为 LaunchDaemon 安装,Xcode.
也不支持
我已经安装了 Xcode 12 beta 2。我试图通过 Jenkins 在 Mac OS Catalina 上 运行 我们的 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
查看了 运行 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 在列表中:
谁能帮我解决这个问题?
我在 Jenkins 上使用 Xcode 12 beta 构建时遇到了类似的问题。当我在终端中使用 jenkins 用户 运行 xc运行 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)
虽然我找不到解决方案,但我找到了解决方法。如果我从 运行ning 停止 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
中找到正确的值此命令可以解决问题:
sudo xcrun simctl shutdown all && sudo xcrun simctl erase all
我在 Xcode 12.1 上使用默认安装的 Jenkins 看到了这个问题。 None 这些解决方案有效,“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)中看到仍然存在一个“已知问题”,指出当 运行ning command-line 工具,例如来自 non-root LaunchDaemon 的 simctl 或 xcodebuild,或者当以与当前用户不同的用户身份启动时(例如,使用 sudo 或 launchctl)。 (62188195) - https://developer.apple.com/documentation/xcode-release-notes/xcode-12_2-beta-release-notes
该问题似乎存在于设备和模拟器上。
更新 解决方案是在您的普通用户下使用自制软件重新安装 Jenkins,让它们 auto-login,然后使用附加到该用户的 LaunchAgent 在您的用户登录时启动 jenkins。
Jenkins 不再支持使用“jenkins 用户”和 运行ning 作为 LaunchDaemon 安装,Xcode.
也不支持