Carthage 更新失败说 "Could not find any available simulators for iOS" - Xcode 10.1,macOS Mojave (10.14.2)
Carthage update failure saying "Could not find any available simulators for iOS" - Xcode 10.1, macOS Mojave (10.14.2)
我正在尝试使用 Carthage 将 Realm 安装到我的项目中。它以前可以工作,但在切换到新的 MacBook Pro(15 英寸,2018 年,TouchBar)之后,我收到以下错误,
carthage update --no-use-binaries --platform iOS
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v3.13.0"
*** xcodebuild output can be found in /var/folders/m4/1z0tvn6d67q2rqwcjvndy80m0000gn/T/carthage-xcodebuild.2vfx4v.log
*** Building scheme "Realm" in Realm.xcworkspace
Could not find any available simulators for iOS
我已尝试卸载并重新安装 Carthage (0.31.2) 并按照这些答案中给出的步骤操作,
Stack Overflow Question
xcrun simctl list devices --json
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPad Pro",
"udid" : "94790E33-EA0A-40B4-BA0A-19CC8D976A6F",
"availabilityError" : ""
}
调试迦太基
(lldb) po devices[latestOSName]?.first { [=14=].isAvailable }
▿ Optional<Simulator>
▿ some : Simulator
- isAvailable : true
- name : "iPhone 5s"
- udid : 87A9C887-034C-44A8-8F30-C90AF9ACCBCC
(lldb) po sdk.platform
XCDBLD.Platform.iOS
(lldb) po sdk.platform.rawValue
"iOS"
看起来这个问题仍然存在。有什么方法可以解决此问题以在最新的 Xcode 版本上运行?
也许您可以进行一些检查以缩小范围:
迦太基版本
carthage version
应该输出
0.31.2
已安装多个 Xcode
xcode-select -p
应该给
/Applications/Xcode.app/Contents/Developer
用于标准安装。
模拟器
xcrun simctl list devices --json
应该输出如下列表:
{
"devices" : {
"iOS 12.1" : [
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPhone 5s",
"udid" : "1A6959A0-C10F-474B-96C5-7E8955FBDD80",
"availabilityError" : ""
},
...
如果没有模拟器,请使用 Xcode 添加一个。
如果有条目,请检查是否有 'isAvailable' 条目,其值为 true
:
"isAvailable" : true,
如果没有,请检查 Xcode 安装。
删除缓存
人们也可以尝试
- 退出Xcode
- 删除 Carthage 和 Xcode 派生数据文件夹的缓存
一如既往地使用 rm -rf
你必须小心:
rm -rf ~/Library/Caches/org.carthage.CarthageKit
rm -rf <your project folder>/Carthage
xcrun simctl delete unavailable
然后重试:
carthage update --no-use-binaries --platform iOS
调试迦太基
Carthage 的优点在于它是开源的,甚至是用 Swift 编写的。
所以要调试它我们可以:
- 退出Xcode
- 在终端中创建一个文件夹并 cd 到该文件夹
然后:
git clone https://github.com/Carthage/Carthage.git
cd Carthage
git checkout 0.31.2
make bootstrap
open Carthage.xcworkspace
之后我们需要输入命令行参数。为此:
- 在Xcode中使用
- 左边选择'Run/Debug'
- 在右侧选择选项卡'Arguments'
- 将 'Arguments Passed on Launch' 更改为
update --no-use-binaries --platform iOS
- 切换到选项卡'Options'
- 输入 Cartfile 所在的路径作为“工作目录”
最后:
- 打开Carthage/Source/CarthageKit/Simulator.swift
- 在方法中设置断点
selectAvailableSimulator
然后你就可以调试出了什么问题。
如果一切正常,它将如下所示:
如果从Xcode 运行 时没有发生错误,那么让它运行 in Xcode 完全没有断点,给它一些时间来编译。
如果从 Xcode 项目更新 carthage 成功,则按照此处所述卸载当前的 carthage 安装。
How to uninstall Carthage from OS X?
然后在终端中转到 Makefile 所在的 Carthage 项目文件夹并键入:
'make install'
之后您可以从命令行再次尝试。它应该有效!
尝试安装以前版本的 carthage
brew install carthage 0.30.1
我通过将 Carthage 升级到 0.32.0 版解决了同样的问题:
brew upgrade carthage
PS: 将 Xcode 更新到版本 10.2
后出现问题
我将 Carthage 0.31.2 升级到 0.33.0 解决了同样的问题:
brew upgrade carthage
PS: 将 Xcode 更新到版本 10.2
后出现问题
我正在尝试使用 Carthage 将 Realm 安装到我的项目中。它以前可以工作,但在切换到新的 MacBook Pro(15 英寸,2018 年,TouchBar)之后,我收到以下错误,
carthage update --no-use-binaries --platform iOS
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v3.13.0"
*** xcodebuild output can be found in /var/folders/m4/1z0tvn6d67q2rqwcjvndy80m0000gn/T/carthage-xcodebuild.2vfx4v.log
*** Building scheme "Realm" in Realm.xcworkspace
Could not find any available simulators for iOS
我已尝试卸载并重新安装 Carthage (0.31.2) 并按照这些答案中给出的步骤操作,
Stack Overflow Question
xcrun simctl list devices --json
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPad Pro",
"udid" : "94790E33-EA0A-40B4-BA0A-19CC8D976A6F",
"availabilityError" : ""
}
调试迦太基
(lldb) po devices[latestOSName]?.first { [=14=].isAvailable }
▿ Optional<Simulator>
▿ some : Simulator
- isAvailable : true
- name : "iPhone 5s"
- udid : 87A9C887-034C-44A8-8F30-C90AF9ACCBCC
(lldb) po sdk.platform
XCDBLD.Platform.iOS
(lldb) po sdk.platform.rawValue
"iOS"
看起来这个问题仍然存在。有什么方法可以解决此问题以在最新的 Xcode 版本上运行?
也许您可以进行一些检查以缩小范围:
迦太基版本
carthage version
应该输出
0.31.2
已安装多个 Xcode
xcode-select -p
应该给
/Applications/Xcode.app/Contents/Developer
用于标准安装。
模拟器
xcrun simctl list devices --json
应该输出如下列表:
{
"devices" : {
"iOS 12.1" : [
{
"availability" : "(available)",
"state" : "Shutdown",
"isAvailable" : true,
"name" : "iPhone 5s",
"udid" : "1A6959A0-C10F-474B-96C5-7E8955FBDD80",
"availabilityError" : ""
},
...
如果没有模拟器,请使用 Xcode
如果有条目,请检查是否有 'isAvailable' 条目,其值为 true
:
"isAvailable" : true,
如果没有,请检查 Xcode 安装。
删除缓存
人们也可以尝试
- 退出Xcode
- 删除 Carthage 和 Xcode 派生数据文件夹的缓存
一如既往地使用 rm -rf
你必须小心:
rm -rf ~/Library/Caches/org.carthage.CarthageKit
rm -rf <your project folder>/Carthage
xcrun simctl delete unavailable
然后重试:
carthage update --no-use-binaries --platform iOS
调试迦太基
Carthage 的优点在于它是开源的,甚至是用 Swift 编写的。
所以要调试它我们可以:
- 退出Xcode
- 在终端中创建一个文件夹并 cd 到该文件夹
然后:
git clone https://github.com/Carthage/Carthage.git
cd Carthage
git checkout 0.31.2
make bootstrap
open Carthage.xcworkspace
之后我们需要输入命令行参数。为此:
- 在Xcode中使用
- 左边选择'Run/Debug'
- 在右侧选择选项卡'Arguments'
- 将 'Arguments Passed on Launch' 更改为
update --no-use-binaries --platform iOS
- 切换到选项卡'Options'
- 输入 Cartfile 所在的路径作为“工作目录”
最后:
- 打开Carthage/Source/CarthageKit/Simulator.swift
- 在方法中设置断点
selectAvailableSimulator
然后你就可以调试出了什么问题。
如果一切正常,它将如下所示:
如果从Xcode 运行 时没有发生错误,那么让它运行 in Xcode 完全没有断点,给它一些时间来编译。
如果从 Xcode 项目更新 carthage 成功,则按照此处所述卸载当前的 carthage 安装。
How to uninstall Carthage from OS X?
然后在终端中转到 Makefile 所在的 Carthage 项目文件夹并键入:
'make install'
之后您可以从命令行再次尝试。它应该有效!
尝试安装以前版本的 carthage
brew install carthage 0.30.1
我通过将 Carthage 升级到 0.32.0 版解决了同样的问题:
brew upgrade carthage
PS: 将 Xcode 更新到版本 10.2
后出现问题我将 Carthage 0.31.2 升级到 0.33.0 解决了同样的问题:
brew upgrade carthage
PS: 将 Xcode 更新到版本 10.2
后出现问题