Partager via


Résolution des problèmes de build iOS

Important

Visual Studio App Center doit être mis hors service le 31 mars 2025. Bien que vous puissiez continuer à utiliser Visual Studio App Center jusqu’à ce qu’il soit entièrement mis hors service, il existe plusieurs alternatives recommandées vers lesquelles vous pouvez envisager de migrer.

En savoir plus sur les chronologies et les alternatives de support.

Aucun schéma Xcode n’est trouvé

La création d’un xcworkspace ou nécessite xcproject un schéma Xcode partagé. Les schémas Xcode sont enregistrés localement afin que Xcode puisse y accéder. Par défaut, les schémas ne sont pas partagés avec d’autres personnes ou inclus dans le contrôle de code source.

Pour partager un schéma dans Xcode, procédez comme suit :

  1. Sélectionnez Schéma de > produit > Gérer les schémas.
  2. Définissez le schéma de votre xcproject/xcworkspace comme partagé.
  3. Le conteneur du schéma doit être défini sur le projet Xcode ou l’espace de travail que vous souhaitez générer.
  4. Ajoutez le .xcscheme fichier au contrôle de code source et envoyé à votre dépôt distant afin qu’App Center puisse y accéder.

Marquer le schéma comme étant partagé

Avertissement

Assurez-vous que votre xcshareddata/xcschemes/ dossier ne se trouve pas dans votre .gitignore fichier. C’est là que les .xcscheme fichiers sont stockés par Xcode. App Center s’appuie sur ces fichiers pour générer le projet correctement. Le simple fait d’exporter le .xcscheme dans un autre dossier ne fonctionnera pas.

Mes builds iOS échouent avec « clang : erreur : échec de la commande de l’éditeur de liens avec le code de sortie 1 »

L’erreur peut être provoquée par la génération d’App Center avec le xcodeproj au lieu de l’espace de travail. Lorsque vous ajoutez CocoaPods à votre projet, basculez vers l’utilisation de l’espace de travail lors de la génération dans App Center.

Indicateur : recherchez cette ligne dans votre journal de build :

ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)

** ARCHIVE FAILED **

Pour corriger cette erreur, ouvrez la configuration build de votre projet, puis cliquez sur Enregistrer. App Center choisit automatiquement l’espace de travail correctement pour les futures builds.

Problèmes de signature iOS expliqués

Notes

Les identités de signature qui utilisent des caractères non ascii ne sont pas prises en charge dans Build.

La gestion des profils et des certificats d’approvisionnement peut être un processus difficile. Les conseils suivants doivent vous aider à signer correctement vos applications iOS :

  1. Enregistrez la configuration de build dans App Center une fois que vous avez envoyé des modifications de signature à votre projet. Dans App Center, la configuration de build d’une branche stocke deux valeurs de votre projet Xcode : le CODE_SIGN_STYLE et DEVELOPMENT_TEAM (défini dans le project.pbxproj fichier de votre .xcodeproj dossier). Chaque fois que vous passez de la signature manuelle à la signature automatique ou que vous changez d’équipe de développement, veillez à enregistrer la configuration de build sur App Center après avoir envoyé les modifications. Si vous n’enregistrez pas après le push, votre build peut échouer avec une erreur de signature.

  2. Faites glisser et déposez le profil d’approvisionnement correct lors de l’utilisation de la signature automatique. Dans Xcode, sous l’onglet Général de votre cible sous Signature, cliquez sur l’icône d’informations en regard de Profil managé Xcode. Vous verrez ensuite une fenêtre contextuelle avec des informations de profil. Cliquez et faites glisser l’icône PROV en haut à gauche vers l’emplacement souhaité (comme indiqué ci-dessous).

  3. Notez les options actuellement prises en charge par App Center lors de l’utilisation de la signature manuelle et automatique. App Center prend entièrement en charge la signature d’application iOS manuelle. Vous pouvez donc utiliser n’importe quel type de profil ou de certificat. Vérifiez que le profil d’approvisionnement et le certificat que vous chargez dans App Center correspondent à ce que vous avez spécifié dans votre projet. Si vous avez activé Gérer automatiquement la connexion dans Xcode, App Center prend en charge la signature d’application avec des certificats et des profils de développeur (et non avec distribution). Lors du chargement vers App Center, vous devez utiliser le profil d’approvisionnement généré automatiquement à partir de Xcode.

Vous rencontrez toujours des problèmes ?

Pour résoudre les problèmes et obtenir l’inscription à la build et l’exécution, nous vous suggérons les étapes suivantes :

  1. Configurez la connexion manuelle dans votre projet Xcode et assurez-vous qu’il fonctionne localement.
  2. Une fois cette vérification effectuée, validez et envoyez les modifications à votre dépôt.
  3. Préparez le profil d’approvisionnement et le certificat sélectionnés dans la cible Xcode et chargez-les dans la configuration de build App Center.
  4. Plus important encore : vérifiez que vous avez envoyé (push) l’état le plus récent de votre projet avant d’enregistrer le nouveau certificat et le nouveau profil dans la configuration de build.

Où se trouve mon fichier .ipa ?

Xcodebuild, contrairement à xcrun, n’autorise pas la génération d’un .ipa fichier si la build n’est pas signée. Les builds non signées produisent un .xcarchive à la place. Si vous souhaitez générer un .ipa fichier avec les artefacts d’une build non signée, vous pouvez utiliser le .xcarchive fichier pour ce faire.

Exporter un fichier xcarchive à l’aide de xcode

Mon application iOS utilisant Xcode échoue avec une erreur de version de code binaire non valide

Si vos builds échouent avec error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0'), vous utilisez une bibliothèque ou un pod qui a été créé par une version plus récente de Xcode que votre projet. Vous pouvez mettre à jour votre projet et générer la configuration dans App Center pour utiliser une version plus récente de Xcode ou basculer vers une autre version de la bibliothèque problématique, qui est compilée avec une version correspondante de Xcode.

Mon application iOS ne parvient pas à exécuter un test

Une raison courante de l’échec des tests est le cas où les commandes de l’éditeur de liens ont rencontré une erreur similaire à celle-ci :

 ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks 
  ❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64 
  ❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)  

La cause probable de cette erreur est que le type de liaison d’Apple Mach-O Linker n’est pas défini sur bibliothèque statique. Pour générer et tester correctement votre application, vérifiez que le type de liaison d’Apple Mach-O Linker dans votre cible de test est défini sur bibliothèque statique.

Apple Mach-O Linker

Mes builds iOS utilisant CocoaPods sur Xcode 9 continuent d’échouer, que dois-je faire ?

Cela peut être dû au fait que la configuration de la signature dans votre projet Pods diffère de celle de votre projet Principal. Vos pods sont-ils archivés dans votre dépôt ? Si c’est le cas, votre projet Pods doit utiliser la même méthode de signature que votre projet Main.

Si vos pods ne sont pas archivés, il peut y avoir différents problèmes. Il existe quelques solutions de contournement que vous pouvez utiliser dans ce problème GitHub avec des scripts pré-build.

Depuis que j’ai mis à niveau mon projet vers Xcode 10 bêta, mon application ne parvient pas à générer avec l’erreur Cycle dans les dépendances entre les cibles

Le nouveau système de génération de Xcode 10 détecte les cycles de dépendance dans votre build et échoue votre build le cas échéant.

Pour plus d’informations sur la résolution de la build, consultez la documentation d’Apple sur la résolution des types courants de cycles de dépendance.