Je voulais partager une expérience particulièrement frustrante (mais finalement instructive) que j’ai eue en essayant de compiler mon application Flutter pour iOS avec Xcode. Pendant près de deux jours, j’ai été confronté à des erreurs de build liées au sandboxing, notamment les messages suivants :
- Error (Xcode): Sandbox: rsync.samba(…) deny(1) file-write-create …/Flutter.framework
- Error (Xcode): Flutter failed to write to a file at “…/.last_build_id”
- Error (Xcode): no such file or directory: ‹ /Users/gerardviet/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation ›
Pour vous donner un aperçu de mes tentatives pour résoudre ce problème :
- J’ai nettoyé tous les caches : suppression du dossier DerivedData, du ModuleCache.noindex et du SDKStatCaches.noindex.
- J’ai effectué un
flutter clean
et supprimé le dossier build pour repartir d’une ardoise. - J’ai relancé la compilation (
flutter run
) à maintes reprises. - J’ai vérifié minutieusement l’existence des fichiers référencés et corrigé les éventuels imports.
- J’ai tenté de revenir à une version antérieure de Xcode (16.2) sans succès.
- J’ai également essayé d’utiliser les versions beta (Xcode 16.3 beta et Simulator 16.0 beta) sans résultat.
Finalement, après une recherche approfondie, j’ai trouvé la solution qui s’est avérée être la bonne : il fallait désactiver le sandboxing des scripts utilisateur dans Xcode. Concrètement, il a fallu aller dans les paramètres de build de mon projet, dans la section « Options de build », et définir la propriété ENABLE_USER_SCRIPT_SANDBOXING sur Non.
Pour ceux qui voudraient en savoir plus, voici un lien vers la discussion Stack Overflow correspondante
Pourquoi cela fonctionne-t-il ?
Xcode 15 (et les versions ultérieures) introduit par défaut une fonctionnalité de sandboxing pour les scripts utilisateur. Cette sécurité limite l’accès aux fichiers et aux ressources système durant la phase de build. Si cette mesure est utile en production pour protéger l’utilisateur final, en développement elle peut devenir trop restrictive, notamment pour Flutter, en empêchant la création ou la modification de fichiers essentiels dans le dossier de build.
J’espère que cette information pourra aider d’autres membres du forum qui pourraient rencontrer des problèmes similaires avec Xcode.
happy coding.
Gérard