在Windows上使用本機程式庫偵錯iOS應用程式

This article was translated from English: Does it need improvement?
Translated
View the article in English

從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打包模型。

警告在iOS上手動複製本機程式庫通常會觸發上述的Sandbox存取錯誤。 將部署留給IronOCR,除非您充分理解Apple的部署規則。

3. 通過macOS在真實裝置上測試

對實際iPhone或從Mac啟動的iOS模擬器運行您的測試。 這樣可以得到已簽名、Sandbox應用程式行為的準確圖片,而Windows的偵錯會話無法重現。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 6,136,090 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明? PM > Install-Package IronOcr
執行範例 觀看您的圖像轉變為可搜尋文字。