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 Developer証明書で署名する必要があり、ネイティブライブラリはARM64用にコンパイルされてAppleのツールチェーンを通じてリンクされ、アプリは厳密なサンドボックス下で実行され、実行時にファイルシステムアクセスが制限されます。Appleのツール(lipo)はmacOSでのみ実行されるため、Windowsマシンではネイティブライブラリを完全にパッケージ化または署名することはできません。 Windowsからデバッグすると、Tesseractバイナリが見つからなかったり、署名されていなかったり、サンドボックスによってブロックされたりして、上記のエラーが発生します。

そのため、同じコードベースがAndroidまたはWindowsターゲットで正常に動作するのです。これらのプラットフォームは、Appleの署名要件なしにネイティブライブラリをロードし、IronOCRにバンドルされたTesseractが期待通りに機能します。

解決策

1. Macを使用してビルドする

macOSで直接開発するか、Visual StudioのPair to Mac機能を使用して、iOSビルドをMacにオフロードしながらWindowsでコードを記述します。 Appleのツールチェーンを経由してビルドをルーティングする唯一の方法で、ネイティブライブラリが正しくコンパイルされ、署名されます。

2. IronOCRにライブラリをデプロイさせる

ネイティブライブラリファイルを手動でコピーしたり移動したりしないでください。 IronOCRはTesseractのデプロイを処理し、パスを手動で編集すると、iOSパッケージングモデルが壊れます。

警告iOSでネイティブライブラリを手動でコピーすることは、上記のサンドボックスアクセスエラーをトリガーすることが一般的です。 Appleのデプロイルールを完全に理解していない限り、IronOCRにデプロイを任せてください。

3. macOS経由で実デバイスでテストする

物理的なiPhoneまたはMacから起動したiOSシミュレータに対してテストを実行してください。 これにより、サインされ、サンドボックス化されたアプリがどのように動作するかの正確な描写を得ることができます。Windowsデバッグセッションでは再現できません。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 6,136,090 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronOcr
サンプルを実行 あなたの画像が検索可能なテキストになるのをご覧ください。