126 votes

xcodebuild dit qu'il ne contient pas de schéma

J'ai un problème curieux.

J'ai un projet sur lequel j'ai travaillé et que j'ai toujours construit à partir de l'IDE XCode, et cela a bien fonctionné. Maintenant, je configure Bamboo pour construire le projet et, en tant que tel, je le construis à partir de la ligne de commande.

Le problème est le suivant : si j'extrais mon code de GIT et que j'utilise xcodebuild pour le construire, il indique que le schéma ne peut être trouvé, mais si j'ouvre le projet, il se construit et si j'essaie de le construire à nouveau à partir de la ligne de commande avec la même commande, il fonctionne.

Quelle magie fait XCode quand j'ouvre le projet ou est-ce que je fais quelque chose de stupide, peut-être en excluant un fichier dans mon .gitignore que je ne devrais pas ?

0 votes

Je viens de remarquer que lorsque j'ouvre le projet dans xcode, il crée un fichier .xcscheme, mais dans le dossier xcuserdata/username.xcuserdatad... mais je ne comprends pas pourquoi le schéma est "généré" sous le dossier des utilisateurs... et comment je vais gérer cela dans bamboo...

1voto

J'ai eu cette erreur lors de l'implémentation du CI. La question ci-dessus est identique à mes problèmes, sauf que j'utilise l'outil de CI de Gitlab.
J'ai résolu le problème en apportant quelques modifications à gitlab-ci.yml fichier.
Après avoir fait votre scheme disponible en partageant. Dans Xcode, allez à Products>Scheme>Manage Scheme et cochez partager pour partager.

Changements

Définir le chemin absolu partout.
eg. xcodebuild clean archive -archivePath /path/to/your/project/build/testDemo -scheme testDemo | xcpretty
ici vous devez changer /path/to/your/project/ avec votre chemin et testDemo avec le nom de votre projet.

0voto

htzfun Points 538

J'ai le même problème mais pendant la construction avec xcode comme sous-projet du projet principal. J'ai construit le sous-projet dans xcode standalone - après cela, cette erreur a disparu.

0voto

Carlos Robles Points 5817

J'ai été confronté à ce problème et même si certaines des réponses fournies ici apportent la solution, je ne l'ai pas trouvée très claire. Je vais donc en ajouter une autre. En bref, comment partager un schéma à partir d'excode.

Naviguez vers Product > Scheme > Manage Schemes

enter image description here

Une liste de schémas s'affiche alors, chacun étant indiqué comme étant partagé ou non. Cochez simplement ceux que vous souhaitez partager (il peut s'agir de schémas différents pour les versions dev et prod).

enter image description here

Images tirées de cet article https://developer.nevercode.io/docs/sharing-ios-project-schemes

0voto

Seto Elkahfi Points 504

Je veux ajouter une solution pour mon cas lié à ce fil. Celui-ci est pour vous qui clonez un projet existant, avec tous les schémas dont vous avez besoin sont déjà partagés :

enter image description here

avec fastlane lanes afficher correctement toutes vos voies, y compris tous vos schémas :

enter image description here

mais fastlane gym ne montrer que les schémas principaux (pas les schémas de développement et de test) :

enter image description here

La solution consiste à décochez l'option partagée pour les régimes qui ne sont pas répertoriés par fastlane gym y puis vérifiez-le à nouveau . Il va générer des .xcscheme pour les schémas :

enter image description here

Maintenant, si vous vérifiez avec fastlane gym tous les régimes seront répertoriés :

enter image description here

Ensuite, vous devez livrer ces fichiers .xcshemes au dépôt, de sorte que les autres développeurs qui clonent le projet obtiennent les fichiers.

0voto

green0range Points 367

Pour tous ceux qui, avec Xcode 11.4, essaient de trouver le bouton "Shared" sur le schéma, il est maintenant déplacé dans le schéma individuel.

  1. Sélectionnez le régime que vous souhaitez
  2. Appuyez sur "Modifier".
  3. Cochez la case "Partagé".

Scheme Edit Contains Shared Box Now

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X