Débogage des applications iOS avec des bibliothèques natives sur Windows
Le débogage d'une application .NET MAUI iOS depuis une machine Windows ne parvient pas à charger des bibliothèques tierces natives telles qu'IronOCR. L'application peut se lancer sur un iPhone connecté, mais le code natif Tesseract dont dépend IronOCR ne se déploie pas correctement.
Failed to locate 'libtesseract.5'...
Access to the path ... is denied.
La cause est le modèle de développement étroitement contrôlé par Apple. Les applications iOS doivent être signées avec un certificat de développeur Apple valide, les bibliothèques natives doivent être compilées pour ARM64 et liées via les chaînes d'outils Apple, et les applications fonctionnent sous un sandboxing strict qui limite l'accès au système de fichiers pendant l'exécution. Les outils Apple (Xcode, codesign, lipo) fonctionnent uniquement sur macOS, donc un ordinateur Windows ne peut pas entièrement empaqueter ou signer la bibliothèque native. Lorsque vous déboguez depuis Windows, le binaire Tesseract finit par manquer, non signé, ou bloqué par le sandbox, produisant les erreurs ci-dessus.
C'est pourquoi le même code s'exécute correctement sur les cibles Android ou Windows: ces plateformes chargent les bibliothèques natives sans les exigences de signature d'Apple, et le Tesseract intégré d'IronOCR fonctionne comme prévu.
Solution
1. Construisez à travers un Mac
Développez directement sur macOS, ou utilisez la fonctionnalité Pair to Mac de Visual Studio pour déléguer les builds iOS à un Mac tout en codant sur Windows. Acheminer la construction à travers la chaîne d'outils d'Apple est le seul moyen que la bibliothèque native soit compilée et signée correctement.
2. Laissez IronOCR déployer ses propres bibliothèques
Ne copiez ni ne déplacez manuellement les fichiers de la bibliothèque native. IronOCR gère le déploiement de Tesseract pour vous, et éditer manuellement les chemins brise le modèle d'empaquetage iOS.
3. Testez sur de véritables appareils via macOS
Exécutez vos tests sur un iPhone physique ou un simulateur iOS lancé depuis un Mac. Cela donne une image précise de la façon dont l'application signée en mode sandbox se comporte, ce qu'une session de débogage Windows ne peut pas reproduire.

