web-dev-qa-db-fra.com

Ionic ios build échoue, archive d'erreur introuvable

J'ai essayé de comprendre cela, mais il ne semble pas y avoir de lumière au bout du tunnel, donc essayez-le ici ... espérons que vous pourrez aider.

J'ai un projet ionique. Exécuter via ionic serve me donne le résultat escompté, aucun problème ici . Cependant, lors de l'exécution d'une commande telle que ionic cordova run ios -lc, je reçois une erreur qui interrompt le processus de construction. L'erreur que je reçois est la suivante:

[cordova] error: archive not found at path '/Users/path-to-app/platforms/ios/demoapp.xcarchive' [cordova] ** EXPORT FAILED ** [cordova] [cordova] (node:5866) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error code 65 for command: xcodebuild with args: -exportArchive,-archivePath,demoapp.xcarchive,-exportOptionsPlist,/Users/path-to-app/platforms/ios/exportOptions.plist,-exportPath,/Users/path-to-app/platforms/ios/build/device [cordova] (node:5866) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Je vois ici 2 erreurs différentes: une archive introuvable et un problème de dépréciation… .. Je ne sais pas laquelle est en train d’interrompre la construction, mais il semble impossible de trouver une solution pour l’une d’elles.

Informations ioniques:

Ionic:

   ionic (Ionic CLI)  : 4.1.2
   Ionic Framework    : ionic-angular 3.9.2
   @ionic/app-scripts : 3.2.0

Cordova:

   cordova (Cordova CLI) : 8.0.0
   Cordova Platforms     : Android 7.0.0, browser 5.0.4, ios 4.5.5
   Cordova Plugins       : no whitelisted plugins (0 plugins total)

System:

   Android SDK Tools : 25.1.7 (/Users/Vincent/Library/Android/sdk)
   ios-deploy        : 1.9.2
   NodeJS            : v9.1.0 (/usr/local/bin/node)
   npm               : 6.4.1
   OS                : macOS High Sierra
   Xcode             : Xcode 10.0 Build version 10A255

Toute aide serait appréciée!

39
Vincent

Actuellement, cordova-ios n'est pas compatible avec Xcode 10.

Vous pouvez essayer de désactiver le nouveau système de construction utilisé par Xcode 10 et utiliser l'ancien en l'ajoutant à votre fichier build.json.

"buildFlag": [
  "-UseModernBuildSystem=0"
]

ou en ajoutant --buildFlag="-UseModernBuildSystem=0" à la commande de construction

La commande complète doit être cordova build ios --buildFlag="-UseModernBuildSystem=0"

Ou pour Ionic ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"

84
jcesarmobile

En plus de la réponse ci-dessus donnée par @jcesarmobile, une autre solution consiste à créer l'application avec l'interface de ligne de commande Ionic en exécutant la commande suivante:

ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"

Selon la commande documentation de la commande ionic build, pour transmettre des options supplémentaires à la CLI Cordova, vous devez utiliser le séparateur -- après les arguments de la CLI Ionic. L'exécution de la commande build par Ionic CLI au lieu de Cordova CLI créera également des ressources Web et fournira des vérifications conviviales avant que Cordova ne construise simplement l'application.

22
AlexGpeppe

Un exemple de travail pour build.json (à placer dans le répertoire racine de votre projet cordova/ionic) est le contenu suivant:

 {
  "ios": {
    "debug": {
      "buildFlag": [
        "-UseModernBuildSystem=0"
      ]
    },
    "release": {
      "buildFlag": [
        "-UseModernBuildSystem=0"
      ]
    }
  }
}

Pour plus de paramètres sur build.json, voir aussi cordova doc: https://cordova.Apache.org/docs/fr/latest/guide/platforms/ios/

17
dgbt

La commande suggérée par jcesarmobile ne fonctionnait pas pour moi, mais

cordova build ios --buildFlag="-UseModernBuildSystem=0"

(sans ionique) a terminé la construction avec succès.

Après cela, j'ai été capable de faire ionos cordova build ion sans aucun problème. (même sans le buildFlag). Je ne suis pas un expert en la matière, en fait, ce fut une erreur de ne pas inclure lol ionique. Donc, bien que tout semble fonctionner correctement, je ne suis pas sûr qu'il y ait des inconvénients à la construction avec Cordova uniquement pour la première fois. Peut-être que quelqu'un peut éclairer un peu les commentaires

0
Nahuel Arjona