ABBYY からトライアル ライセンスを取得し、iPhone 用のトライアル SDK を入手しました。しかし、デバイスでプロジェクトをビルドおよびデバッグできません。エラーが発生します:「_OBJC_CLASS_$_CMocrManager」、次から参照:
アプリケーションはシミュレーターで正常に動作します (サンプルで 1 つのイメージが提供されます)。
助けてください、スクリーンショットを添付しました。
abbyy mobile sdkのテクニカル サポートに問い合わせたところ、ビルド番号に関する回答は次のとおりです。
「Mac OS で dll ライブラリのビルド番号を確認する方法がないことがわかりました (Windows でしか確認できませんでした。ご不便をおかけして申し訳ありません)。」
そして、ビルドエラーに関して、私は彼らから与えられた次の指示に従いました:
ABBYY Мobile OCR Engine の最新リリースを使用しているため、問題はプロジェクト設定にあります。
以下に、Xcode 4.3、iPhoneSDK 5.1 で iPhone 用のサンプルを実行する方法を示します。
Xcode を起動して「Sample.private.xcodeproj」プロジェクトを開くと、Xcode によってワークスペース ウィンドウが表示されます。ツールバーを使用すると、右上隅にある「表示」ボタンのグループにすばやくアクセスできます。ここで、「ナビゲーターを非表示または表示」ボタンをクリックします (または、xCode のメイン メニューの [表示] → [ナビゲーター] → [プロジェクト ナビゲーターを表示] を使用して同じことを行います)。
「プロジェクト ナビゲーター」は、1 つのプロジェクト「Sample.private」を含むワークスペース ウィンドウの左側に表示されます。
プロジェクトナビゲーターの「Sample.private」プロジェクトアイコンをクリックします。プロジェクト ナビゲータの右側に「Project Editor」パネルが表示され、要素 Project → Sample.private と要素 Target → Sample が表示されます。
[Project] → [Sample.private] を選択し、[BuildSettings] タブで次の設定をセットアップします。
• ビルド設定 → セクション アーキテクチャ:
ベース SDK = 「最新の iOS (iOS 5.1)」
アクティブなアーキテクチャのみをビルド = はい
残りのアーキテクチャ設定は自動的に次のようになります。
アーキテクチャ = 標準 (armv7)
サポートされているプラットフォーム = iphonesimulator iphoneos
有効なアーキテクチャ = armv6 armv7
• Code Signing セクションで、パラメータ Code Signing Identity の開発者ライセンスを指定します。
• アプリケーションがサポートする最小の OS バージョンを指定するには、「展開」セクションで iOS 展開ターゲットを設定します。
ターゲット → サンプルを選択します。ここでも [Build Settings] タブを開き、[Project] → [Sample.private] とほぼ同じ操作を行います。
• ビルド設定 → セクション アーキテクチャ:
アクティブなアーキテクチャのみをビルド = はい
残りのアーキテクチャ設定を確認します。
アーキテクチャ = armv6
「ベース SDK」 = 「最新の iOS (iOS 5.1)」
サポートされているプラットフォーム = iphonesimulator iphoneos
有効なアーキテクチャ = armv6
• Code Signing セクションで、パラメータ Code Signing Identity の開発者ライセンスを指定します。
• アプリケーションがサポートする最小の OS バージョンを指定するには、「展開」セクションで iOS 展開ターゲットを設定します。
iOS展開対象=サンプル開始予定のiPhoneのOSバージョン。
次に、メインの xCode メニューからデフォルトで開く Run Sample.app スキームを調整します: Product → Edit Scheme:
• パラメータ Destination は iOS デバイス (モバイル デバイスが現在コンピュータから切断されている場合) であるか、サンプルを実行しようとしている現在コンピュータに接続されているデバイスの名前である必要があります。
• [情報] タブのパラメータ [ビルド構成] を iPhone.Debug に変更します。
次に、デバイスでサンプルを起動してみます。
さらに、当社のテスト エンジニアは、「リモート プログラムの起動エラー: xxx のタスクを取得できませんでした」のようなメッセージが表示される可能性があることに気付きました。サンプルがデバイスにインストールされていて、デバッグ モードで動作しない場合。この問題の解決策は、iOS 開発者のさまざまなフォーラムで詳細に説明されています。これを解決するには、開発者プロファイルを除くすべてのプロビジョニング プロファイルをモバイル デバイスから削除します。
そして無事にサンプルをビルドすることができました。
これを手伝ってくれたニコライとシャープトゥースに感謝します。
それはリンクの問題です。エラーメッセージの前に表示されるリンカの警告は.a
、SDK()を構成するファイルが、プロジェクトの対象となるlibAbbyyMsdk.a
アーキテクチャとは異なるアーキテクチャ用にコンパイルされていることを明確に示しています。armv6
ベンダーに連絡してファイルのarmv6
ターゲットバージョンを要求する.a
か、ファイルと同じアーキテクチャのプロジェクトをターゲットにし.a
ます。