web-dev-qa-db-fra.com

Échec de la mise à jour de Carthage disant "Impossible de trouver les simulateurs disponibles pour iOS" - Xcode 10.1, macOS Mojave (10.14.2)

J'essaie d'installer Realm sur mon projet en utilisant Carthage. Il fonctionnait avant mais après le passage au nouveau MacBook Pro (15 pouces, 2018, TouchBar), j'obtiens l'erreur suivante,

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

J'ai essayé de désinstaller et réinstaller Carthage (0.31.2) et j'ai suivi les étapes données dans ces réponses,

Question de dépassement de pile

Problème Carthage Git

Correction et libération de Carthage

xcrun simctl list devices --json

     {
        "availability" : "(available)",
        "state" : "Shutdown",
        "isAvailable" : true,
        "name" : "iPad Pro",
        "udid" : "94790E33-EA0A-40B4-BA0A-19CC8D976A6F",
        "availabilityError" : ""
      }

Déboguer Carthage

(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"

Il semble que ce problème existe toujours. Existe-t-il un moyen de résoudre ce problème pour qu'il fonctionne sur la dernière version de Xcode?

10
Sasi M

Peut-être quelques vérifications que vous pouvez faire pour le réduire un peu:

Version Carthage

carthage version

devrait sortir

0.31.2

Plusieurs Xcode installés

xcode-select -p

devrait donner

/Applications/Xcode.app/Contents/Developer

pour une installation standard.

Simulateur

xcrun simctl list devices --json 

Cela devrait produire une liste comme:

{
  "devices" : {
    "iOS 12.1" : [
      {
        "availability" : "(available)",
        "state" : "Shutdown",
        "isAvailable" : true,
        "name" : "iPhone 5s",
        "udid" : "1A6959A0-C10F-474B-96C5-7E8955FBDD80",
        "availabilityError" : ""
      },
  ...

S'il n'y a pas de simulateurs, ajoutez-en un en utilisant Xcode <Fenêtre/Périphériques et simulateurs>.

S'il y a des entrées, veuillez vérifier s'il y a une entrée 'isAvailable' avec true comme valeur:

"isAvailable" : true,

Sinon, vérifiez l'installation de Xcode.

Supprimer les caches

On pourrait aussi essayer de

  • quitter Xcode
  • supprimer les caches du dossier de données dérivé de Carthage et Xcode

Comme toujours lors de l'utilisation de rm -rf tu dois être prudent:

rm -rf ~/Library/Caches/org.carthage.CarthageKit 
rm -rf <your project folder>/Carthage
xcrun simctl delete unavailable

Réessayez ensuite:

carthage update --no-use-binaries --platform iOS

Débogage Carthage

La bonne chose à propos de Carthage est qu'il est open source et même écrit en swift.

Donc, pour le déboguer, nous pouvons:

  • quitter Xcode
  • créer un dossier dans Terminal et cd dans le dossier

Ensuite:

git clone https://github.com/Carthage/Carthage.git
cd Carthage
git checkout 0.31.2
make bootstrap
open Carthage.xcworkspace

Ensuite, nous devons entrer des arguments de ligne de commande. Faire cela:

  • dans Xcode, utilisez <Product/Scheme/Edit Scheme ...>
  • à gauche, choisissez 'Run/Debug'
  • à droite, choisissez l'onglet 'Arguments'
  • remplacez les "Arguments transmis au lancement" par update --no-use-binaries --platform iOS

Arguments

  • passer à l'onglet 'Options'
  • entrez comme "répertoire de travail" le chemin où réside le Cartfile

Workding Directory

Finalement:

  • ouvrir Carthage/Source/CarthageKit/Simulator.Swift
  • définir des points d'arrêt dans la méthode selectAvailableSimulator

Ensuite, vous pouvez déboguer ce qui ne va pas.

Si tout va bien, cela ressemblerait à ceci:

Debug Session

Si aucune erreur ne s'est produite lors de l'exécution à partir de Xcode, laissez-le s'exécuter complètement dans Xcode sans point d'arrêt et laissez-lui le temps de faire la compilation.

Si la mise à jour de carthage réussit à partir du projet Xcode, désinstallez votre installation de carthage actuelle comme décrit ici.

Comment désinstaller Carthage d'OS X?

Ensuite, dans Terminal, accédez au dossier du projet Carthage où réside le Makefile et tapez:

'make install'

Vous pouvez ensuite l'essayer à nouveau à partir de la ligne de commande. Ça devrait marcher!

13
Stephan Schlecht

J'ai résolu ce même problème lors de la mise à niveau de Carthage vers la version 0.32.0 avec:

brew upgrade carthage

PS: un problème est survenu après la mise à jour de Xcode vers la version 10.2

4
veladan

J'ai résolu ce même problème lors de la mise à niveau de Carthage 0.31.2 vers 0.33.0 avec:

brew upgrade carthage

PS: un problème est survenu après la mise à jour de Xcode vers la version 10.2

2
Ender

Essayez d'installer une version précédente de carthage

brew install carthage 0.30.1

1
Carlos Chaguendo