【问题标题】:Carthage update failure saying "Could not find any available simulators for iOS" - Xcode 10.1, macOS Mojave (10.14.2)Carthage 更新失败,提示“找不到任何适用于 iOS 的模拟器” - Xcode 10.1、macOS Mojave (10.14.2)
【发布时间】:2019-05-29 18:07:50
【问题描述】:

我正在尝试使用 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

Carthage Git Issue

Carthage Fix and Release

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 { $0.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 版本上工作?

【问题讨论】:

  • 是否需要设置命令行工具?
  • @iDeveloper 我已经设置了,但没有改变。仍然出现同样的错误。
  • 将 Carthage 升级到 0.31.2 为我解决了这个问题。
  • @duncanc4 仅使用 0.31.2。甚至尝试卸载并再次安装它。但力求解决问题。
  • @SasiM 您是否使用任何预构建的 SDK。如果您使用 Realm 预构建设备或模拟器,请确保使用正确的。

标签: ios swift realm carthage xcode10.1


【解决方案1】:

也许您可以进行一些检查以缩小范围:

迦太基版本

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 添加一个。

如果有条目,请检查是否有以true 为值的“isAvailable”条目:

"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 中使用
  • 在左侧选择“运行/调试”
  • 在右侧选择选项卡“参数”
  • 将“启动时传递的参数”更改为update --no-use-binaries --platform iOS

  • 切换到“选项”标签
  • 在“工作目录”中输入 Cartfile 所在的路径

最后:

  • 打开 Carthage/Source/CarthageKit/Simulator.swift
  • 在方法selectAvailableSimulator中设置断点

然后你就可以调试出了什么问题。

如果一切正常,它会是这样的:

如果从 Xcode 运行时没有发生错误,则让它在 Xcode 中完全运行,没有断点,并给它一些时间进行编译。

如果从 Xcode 项目成功更新 carthage,则按照此处所述卸载当前的 carthage 安装。

How to uninstall Carthage from OS X?

然后在终端中转到 Makefile 所在的 Carthage 项目文件夹并键入:

'make install'

之后,您可以再次从命令行尝试。它应该工作!

【讨论】:

  • 是的,我在发布这个问题之前确保所有这些都是正确的。甚至尝试卸载 Xcode 10.1 并安装 Xcode 10 但它仍然可以解决问题。
  • 你能从xcrun simctl list devices --json发布一台设备吗?
  • 更新了我的问题。请看一看。
  • 好的,我添加了删除缓存的说明 - 值得一试。在调用carthage update... 之后, ~/Library/Caches/org.carthage.CarthageKit/DerivedData 中应该会出现一个新文件夹。这个文件夹叫什么名字?
  • 所以从 Xcode 项目它正在工作。您现在可以卸载当前的 carthage 安装(甚至可以使用此处描述的两种方法:stackoverflow.com/a/48040795/2331445)。然后在终端中转到 Carthage 项目文件夹(Makefile 所在的位置)并输入:'make install'。之后您可以再次从命令行尝试。
【解决方案2】:

尝试安装以前版本的迦太基

brew install carthage 0.30.1

【讨论】:

    【解决方案3】:

    我通过以下方式解决了将 Carthage 升级到版本 0.32.0 的相同问题:

    brew upgrade carthage
    

    PS:Xcode 更新到 10.2 后出现问题

    【讨论】:

      【解决方案4】:

      我通过以下方式解决了将 Carthage 0.31.2 升级到 0.33.0 的相同问题:

      brew upgrade carthage
      

      PS: 更新 Xcode 到 10.2 版本后出现问题

      【讨论】:

      • 升级到 Xcode10.3 后我遇到了同样的问题。更新迦太基就像一个魅力。谢谢!!
      猜你喜欢
      • 2021-01-12
      • 2019-03-10
      • 2019-06-22
      • 1970-01-01
      • 2019-05-08
      • 2021-01-07
      • 2019-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多