Ошибка обновления Карфагена, говорящая «Не удалось найти доступные симуляторы для iOS» - Xcode 10.1, macOS Mojave (10.14.2) - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь установить Realm в свой проект с использованием Carthage.Раньше он работал, но после перехода на новый 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) иследуя инструкциям, приведенным в этих ответах,

Вопрос переполнения стека

Исправление проблемы с Карфагеном

Исправление Карфагена иВыпуск

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?

Ответы [ 4 ]

0 голосов
/ 19 апреля 2019

Я решил эту же проблему, обновив Carthage 0.31.2 до 0.33.0 с помощью:

brew upgrade carthage

PS: проблема возникла после обновления Xcode до версии 10.2

0 голосов
/ 10 января 2019

Попробуйте установить предыдущую версию Carthage

brew install carthage 0.30.1

0 голосов
/ 27 марта 2019

Я решил эту же проблему, обновив Carthage до версии 0.32.0 с помощью:

brew upgrade carthage

PS: проблема возникла после обновления Xcode до версии 10.2

0 голосов
/ 05 января 2019

Возможно, вы можете сделать несколько проверок, чтобы немного его сузить:

Версия карфагена

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
  • удалить кэши для папки данных, полученных из Карфагена и 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
  • создайте папку в терминале и перейдите в папку

Затем:

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

Arguments

  • перейти на вкладку «Опции»
  • ввести в качестве «Рабочего каталога» путь, в котором находится файл Cartfile

Workding Directory

Наконец:

  • Открыть Carthage / Source / CarthageKit / Simulator.swift
  • установите точки останова в методе selectAvailableSimulator

Тогда вы сможете отладить, что идет не так.

Если все в порядке, это будет выглядеть так:

Debug Session

Если при запуске из XCode не было ошибок, дайте ему полностью запуститься в XCode без точки останова и дайте ему время для компиляции.

Если обновление Carthage выполнено успешноиз проекта XCode затем удалите текущую установку Carthage, как описано здесь.

Как удалить Carthage из OS X?

Thru в Терминале перейдите в папку проекта Carthage, где находится Makefile, и наберите:

'make install'

После этого вы можете попробовать его снова из командной строки.Это должно работать!

...