web-dev-qa-db-fra.com

Carthage ne parvient pas à démarrer lors de l'exécution à partir de Xcode 10 Build

J'ai un script ksh simple qui exécute carthage update --platform iOS en tant que pré-action de construction et il a commencé à échouer après la mise à jour vers Xcode 10 . L'exécution de la commande dans Terminal génère le dossier Carthage avec succès.

Pour reproduire ce problème, quittez Xcode et supprimez les dossiers DerivedData et Carthage. Ensuite, ouvrez Xcode 10 et essayez de construire.

L'erreur que je reçois:

<unknown>:0: error: unable to load standard library for target 'arm64-Apple-ios8.0-simulator'

** ARCHIVE FAILED **


The following build commands failed:
    CompileSwift normal armv7
    CompileSwiftSources normal armv7 com.Apple.xcode.tools.Swift.compiler
    CompileSwift normal arm64
    CompileSwiftSources normal arm64 com.Apple.xcode.tools.Swift.compiler
(4 failures)
Build Failed

Installer

  • Carthage 0.31.1 
  • Cartfile points pour Alamofire 4.7.3

Choses que j'ai essayées

  • Utiliser carthage bootstrap n'a pas fonctionné
  • L'augmentation de la cible de dépendance d'Alamofire vers iOS 8.4 et 10 (à partir de la fourchette locale) n'a pas fonctionné
  • Toutes les réponses de cette SO question. , n'a pas fonctionné
  • Utilisez env -i comme indiqué dans ticket Carthage ouvert , n'a pas fonctionné

Solutions

  • Sélectionnez "Périphérique iOS générique" lors de la première création.
  • Passer le paramètre SDK directement à xcodebuild, trouvé dans cette réponse. Ceci vous oblige à écrire votre propre carthage update, composé de checkout et build. Seule cette option a fonctionné comme étape de préaction Xcode Build. La solution a été testée.

Quelques liens

Discussion non répondue sur les forums Apples.

Billet Alamofire fermé

7
Boris Y.

J'ai trouvé un moyen qui fait le tour et son:

écrire une commande valide write après la commande carthage update

Alors suivez cette liste de contrôle:

  • Assurez-vous que vos outils de ligne de commande sont configurés pour utiliser Xcode 10.1. Exécutez la commande suivante à partir de Terminal:

    Sudo xcode-select -s <path to Xcode 10.1>/Contents/Developer

  • Assurez-vous que le fichier de script dispose des autorisations requises:

    chmod 777 <path-to-script-file>

  • Ecrivez une commande valide, écrivez après la commande carthage update, par exemple echo succeed (cela fait l'affaire):

     Example

Environnement testé:

  • Carthage 0.31.2
  • Xcode 10.1

Démo de travail

https://github.com/MojtabaHs/Carthage-WorkingDemo

- LA PAS LA PLUS IMPORTANTE

  • DON'T FORGET pour écrire une commande valide write après la commande carthage update

Notez qu’il s’agit d’un simple piratage du problème expliqué en question, et non de tous les problèmes de carthage.

2
Mojtaba Hosseini

La solution qui fonctionnait pour moi consistait à supprimer une des variables env provenant de XCode 10 juste avant d'exécuter cart update

unset LLVM_TARGET_TRIPLE_SUFFIX

carthage mise à jour

0
Tomasz Zabłocki