在Windows上使用本機程式庫偵錯iOS應用程式
從Windows機器偵錯.NET MAUI iOS應用程式未能載入本機第三方程式庫,如IronOCR。 應用程式可能在連接的iPhone上啟動,但IronOCR依賴的本機Tesseract程式碼未正確部署。
Failed to locate 'libtesseract.5'...
Access to the path ... is denied.
原因是Apple嚴格控制的開發模型。 iOS應用程式必須使用有效的Apple開發者證書進行簽署,原生程式庫必須為ARM64編譯並透過Apple工具鏈連結,應用程式在嚴格沙盒環境中運行,限制了執行時對檔案系統的存取。Apple的工具(lipo)僅能在macOS上運行,因此Windows機器無法完整封裝或簽署原生程式庫。 當您從Windows除錯時,Tesseract二進制文件最終缺失、未簽名或被Sandbox阻止,產生上述錯誤。
這就是為什麼同一程式碼庫在Android或Windows目標上運行順利的原因:這些平台不需要Apple的簽名要求來載入本機程式庫,而IronOCR捆綁的Tesseract按預期工作。
解決方案
1. 通過Mac進行構建
直接在macOS上開發,或使用Visual Studio的Pair to Mac功能在Mac上解除安裝iOS構建,同時在Windows上編寫程式碼。 通過Apple工具鏈路由構建是讓本機程式庫得到正確編譯和簽名的唯一方式。
2. 讓IronOCR部署自己的程式庫
不要手動複製或重新定位本機程式庫文件。 IronOCR為您處理Tesseract的部署,手動編輯路徑破壞了iOS打包模型。
3. 通過macOS在真實裝置上測試
對實際iPhone或從Mac啟動的iOS模擬器運行您的測試。 這樣可以得到已簽名、Sandbox應用程式行為的準確圖片,而Windows的偵錯會話無法重現。

