我已经安装了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 :
有人可以帮我解决这个问题吗?
答案 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
答案 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也不再支持。