Menu
Dossiers

Xcode 27.2 RC : le format de projet JSON .xcproj arrive pour en finir avec les conflits de fusion

Apple a publié le 19 octobre la version candidate (RC) de Xcode 27.2. Ce n’est pas une mise à jour de façade : elle installe pour de bon un nouveau format de fichier projet en JSON, pensé pour mettre fin aux conflits de fusion sur le project.pbxproj, et elle ajoute des outils destinés aux assistants de code.

En bref
• Xcode 27.2 RC (build 27B48) est en ligne depuis le 19 octobre 2026, avec les RC d’iOS, iPadOS, macOS, tvOS, watchOS et visionOS 27.2.
• Il embarque Swift 6.4 et exige un Mac sous macOS Tahoe 26.6 ou plus récent.
• Le format de projet .xcproj, en JSON, remplace le .pbxproj sur option, projet par projet.
• Côté assistant de code, un outil MCP GetCodeCoverage fait son apparition.

Ce que contient la version candidate #

La page des versions du portail développeur d’Apple liste Xcode 27.2 RC au 19 octobre 2026, sous le numéro de build 27B48. Il arrive en même temps que les versions candidates de tous les systèmes 27.2, quatre jours après la sortie finale de Xcode 27.1 (15 octobre).

À lire PHP 8.6 RC3 : sessions durcies, clamp() et application partielle avant la version stable

D’après les notes de version officielles, cette RC intègre Swift 6.4 et les SDK d’iOS 27.2, iPadOS 27.2, tvOS 27.2, watchOS 27.2, macOS 27.2 et visionOS 27.2. Le débogage sur appareil reste possible à partir d’iOS 17, tvOS 17 et watchOS 10. Il faut en revanche un Mac sous macOS Tahoe 26.6 au minimum : si votre machine de build a pris du retard, c’est le premier point à vérifier.

Une RC est en principe la version qui sera publiée telle quelle si aucun bug bloquant ne remonte. Il n’est donc pas trop tôt pour la tester sur une branche de travail avant de basculer la CI.

Le .xcproj : un projet Xcode enfin lisible #

Tous ceux qui ont travaillé à plusieurs sur une app iOS connaissent le problème. Le fichier project.pbxproj est une liste de propriétés truffée d’identifiants opaques, et deux branches qui ajoutent chacune un fichier au projet suffisent à provoquer un conflit pénible à résoudre à la main.

Xcode 27.2 propose une autre voie. Les notes de version décrivent un format de projet en JSON, le .xcproj, « plus lisible, plus facile à fusionner et plus simple à modifier pour les agents de code ». Il s’active depuis l’inspecteur de fichier (File inspector), et un projet converti s’ouvre aussi dans les versions antérieures de Xcode 27.

À lire Patch .NET d’octobre : .NET 8 et .NET 9 en fin de support le 10 novembre

Dans son article du 12 octobre, InfoQ détaille la logique du schéma. Il privilégie les noms et les chemins plutôt que les identifiants. Seules les cibles et les produits de build gardent un identifiant, pour que des fichiers externes puissent y faire référence. Le schéma couvre les cibles, l’arborescence des fichiers, les configurations et réglages de build ainsi que les dépendances externes.

Migrer sans casser sa chaîne d’outils

La conversion ne touche que la représentation sur disque, pas le modèle du projet : project.pbxproj est remplacé par project.xcproj. InfoQ conseille de vérifier avant de migrer que vos outils savent lire le nouveau format, en citant fastlane, CocoaPods et Tuist. C’est là que se trouve le vrai risque : un script de CI qui patche le .pbxproj avec sed ou une gem Ruby cessera de fonctionner.

Pour ceux qui génèrent ou modifient des projets par programme, Apple a publié en open source la bibliothèque Swift xcode-project-format, qui encode et décode ce format.

Pour une équipe, mieux vaut migrer dans une branche dédiée, fusionnée rapidement, une fois que tout le monde est passé à Xcode 27. Laisser cohabiter les deux formats sur des branches parallèles, c’est recréer les conflits qu’on voulait éviter.

À lire Node.js 26 passe en LTS le 28 octobre : faut-il migrer depuis Node 24 ?

Plus de place pour les assistants de code #

Apple assume que les agents IA font partie de l’environnement de développement. Dans la section « Coding Assistant », les notes de version annoncent un outil MCP GetCodeCoverage. Il renvoie la couverture de code du dernier résultat de tests, avec un filtre possible par cible ou par fichier. Un agent peut donc vérifier de lui-même si les tests qu’il vient d’écrire couvrent bien le code modifié.

L’outil MCP RenderPreview, lui, renvoie désormais la liste des destinations de rendu disponibles et laisse l’appelant choisir celle à utiliser. Les Previews corrigent par ailleurs un bug que les développeurs sous Windows ou les dépôts mixtes reconnaîtront : elles pouvaient échouer sur des fichiers source aux fins de ligne Windows (CRLF).

Device Hub et simulateurs : les ajustements du quotidien #

Le Device Hub reçoit une série d’options, réservées pour la plupart aux simulateurs : animations au ralenti, simulation de secousse, de chute ou de pression mémoire. On peut aussi masquer le cadre des appareils et choisir où enregistrer les captures d’écran. Plusieurs corrections touchent des agacements réels : touches de modification envoyées au mauvais appareil quand plusieurs fenêtres sont ouvertes, appareil connecté qui ne reçoit plus les entrées après un moment d’inactivité, menu « Simulate Memory Warning » qui ne faisait rien.

Côté simulateurs, les runtimes supprimés ne réapparaissent plus après un redémarrage. Ce bug traînait depuis longtemps, si l’on en juge par son numéro de suivi, bien plus ancien que les autres.

À lire Squoosh : Comment optimiser vos images en ligne facilement avec cet outil open source

Les problèmes connus à garder en tête #

Deux points méritent une vérification avant toute mise en production. D’abord, les SDK macOS, watchOS, tvOS et visionOS de Xcode 27.2 proposent à tort 27.1 comme cible de déploiement valide, ce qui peut produire des builds au comportement inattendu. Ensuite, les projets qui utilisent des API propres à iOS 27.1 échouent à la compilation pour Mac Catalyst. Apple recommande de les isoler avec #if !targetEnvironment(macCatalyst) en Swift.

Enfin, cloner un simulateur sous le runtime 27.2 peut échouer à cause de permissions de fichiers incorrectes. Les notes de version donnent une commande de contournement.

Faut-il l’installer maintenant ? #

Pour la plupart des équipes, la bonne démarche consiste à installer la RC à côté de Xcode 27.1, à la tester sur une branche et à attendre la version finale pour la CI. Le passage au .xcproj mérite une décision collective : il simplifiera durablement les revues de code et les fusions, à condition que toute la chaîne d’outils suive. Avec un café à portée de main, c’est le genre de chantier qui se règle en une matinée, et qui fait gagner des heures de conflits par la suite.

KawaWeb est édité de façon indépendante. Soutenez la rédaction en nous ajoutant dans vos favoris sur Google Actualités :

Dans la même rubrique : Développement & code

En savoir plus : forfaits de référencement Google · consultant SEO