安装 Carthage 依赖时,Xcode 10 提示 iOS 没有可用的模拟器。

25

我正试图在我的Xcode项目中使用Carthage安装依赖项

Carthage bootstrap --platform iOS 

在命令行中操作,但是失败了,我在终端上看到了这个消息:

command line but It's fail and I have this message in my terminal:

Could not find any available simulators for iOS

我刚刚更新了Xcode到10版本,然后模拟器已经安装好了。

我还尝试删除每个模拟器,只重新安装iOS 12的一个。

我仍然遇到同样的错误。


不确定这是否与您相关,但是,这似乎是10.1的问题...是的,一旦您安装了它,似乎没有什么可以做来解决它☹️有关更多详细信息,请参见此问题。 (https://github.com/Carthage/Carthage/issues/2602) - MadProgrammer
我通过App Store安装了Xcode10.0,但问题仍然存在。 - kroko
我也在Xcode 9.4.1上遇到了这个问题,使用的是Carthage v0.31.0。xcode-select显示已选择Xcode 9的构建工具。任何调用构建的Carthage命令都会出现这个问题,而不仅仅是'bootstrap'。 - u2Fan
我一直遇到这个问题,升级到v0.31.1解决了它。 - jameshartt
1
最新版本的Carthage(0.34)在我的电脑上出现了问题。 - BadmintonCat
8个回答

26

对我有用的是卸载Carthage并重新安装它。

brew uninstall carthage --force
brew install carthage

2
只需升级Carthage。brew upgrade carthage - Alex Zavatone
@AlexZavatone 如果有新版本,那就可以这样做。否则,你需要使用我提到的技巧。 - Tomáš Linhart
Tomas,发生这种情况的原因是因为有一个新版本改变了数据格式。 - Alex Zavatone
Alex,你可能遇到了另一个问题,因为升级没有起作用。 - Tomáš Linhart
问题是我已经有了最新版本,所以升级没有任何作用。没有新版本可供安装。我不记得版本号了,但我想它是v0.31.1? - Tomáš Linhart
显示剩余2条评论

15

升级到v0.31.1或v0.31.2可以解决此问题:

brew update && brew upgrade carthage

3

每当有新的Xcode版本发布时,这种情况往往会发生。如果您是通过Brew安装的,可以尝试使用brew upgrade carthage更新Carthage。


3
安装Xcode 10.1后,我甚至在使用Carthage 0.31.2时也遇到了问题。但我安装重大版本的Xcode时有一个习惯,就是删除所有模拟器。添加一个iOS 12.1模拟器解决了这个问题。

只需升级Carthage。brew upgrade carthage - Alex Zavatone

3

请升级你的Carthage。

正如其他答案所指出的那样,导致这个问题的原因是在最近更新的Xcode 10.x中改变了一个指示模拟器模型可用性的关键字。

"availability" : "(available)",

而且现在

"isAvailable" : true,

升级 Carthage 到 0.33.0 可解决这个问题。

使用 brew,输入以下命令来更新 Carthage:

brew upgrade carthage

注意这里用的是 upgrade 而不是 update。

检查 carthage 的版本号。

brew list --versions carthage

carthage 0.33.0

在你的项目根目录终端中,输入以下命令以重建Carthage依赖关系。

carthage bootstrap --platform iOS

所有的应该按预期构建。

您可以通过此命令检查可用模拟器的数据格式。

xcrun simctl list devices --json


2

尝试运行

使用sudo brew install --HEAD carthage进行安装

自Xcode 10.1 beta以来,xcrun simctl list devices --json的结构已更改。

之前

{
  "devices" : {
    "iOS 12.0" : [
      {
        "state" : "Shutdown",
        "availability" : "(available)",
        "name" : "iPhone 5s",
        "udid" : "A52BF797-F6F8-47F1-B559-68B66B553B23"
      }
  ]
}

之后

{
  "devices" : {
    "iOS 12.0" : [
      {
        "state" : "Shutdown",
        "isAvailable" : "YES",
        "name" : "iPhone 5s",
        "udid" : "A52BF797-F6F8-47F1-B559-68B66B553B23"
      }
  ]
}

由于这些变更,Xcode 10.1的解析失败。

0

在我的情况下,问题已经解决了。

  1. 关闭Xcode
  2. rm -rf ~/Library/Developer/CoreSimulator/Devices/
  3. 打开Xcode
  4. 创建新项目
  5. 在任何模拟器上运行空项目
  6. 执行carthage update

除此之外,Xcode 不会自动安装任何模拟器,按照您的步骤后会留下一个损坏的模拟器安装。 - BadmintonCat

0

卸载并重新安装 Carthage 技巧对我很有用!

brew uninstall carthage —force

Screenshot

brew install carthage

只需升级Carthage。brew upgrade carthage - Alex Zavatone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接