zbar-sdk (バーコード スキャン ライブラリ) を使用するプロジェクトがあります。
マシンを xcode 4.5 および ios6sdk に更新した後、いくつかの問題が発生しています。
プロジェクトについて何も触れずに、シミュレーターをビルドすることができました。これは、最新の zbar 1.2 ライブラリを使用しています。
次に、テストのために ios6 デバイスにビルドしたかったのですが、そのときにエラーが発生しました。
zbar 開発者フォーラムでグーグルで調べたところ、zbar 開発者はまだこれを行っていないため、zbar ソースを取得して armv7 および armv7s 用の libzbar.a をビルドする必要があることがわかりました。
参照 - http://sourceforge.net/projects/zbar/forums/forum/1072195/topic/5728912
だから私はこれを行い、更新された libzbar.a を私のプロジェクトに再インポートしました。次に、自分のデバイス用にビルドしましたが、うまくいきました! アプリをテスト デバイスに入れることができ、zbar バーコード ライブラリは正常に機能しました。
これで終わりだと思っていましたが、残念ながらそうではありませんでした。
次に、シミュレーター (ios6) に再度ビルドしようとしましたが、失敗しました。
このプロジェクトをデバイスとシミュレーターの両方に対して同時に同じ設定でビルドすることはできません:(
独自の libzbar.a ファイルをビルドするときの libzbar.a プロジェクト設定:
アーキテクチャ: 標準 (armv7、armv7s) $(ARCHS_STANDARD_32_BIT)
アクティブなアーキテクチャのみをビルド: いいえ
有効なアーキテクチャ: armv7 armv7s
そして、私のプロジェクト設定(myapp用)は次のとおりです。
アーキテクチャ: 標準 (armv7、armv7s) $(ARCHS_STANDARD_32_BIT)
アクティブなアーキテクチャのみをビルド: いいえ
有効なアーキテクチャ: armv7 armv7s
ベース SDK: iOS6
iOS 展開ターゲット: iOS 5.0
そして、シミュレーターにビルドしようとしたときのエラー:
ld: warning: ignoring file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a, missing required architecture i386 in file /Users/blah/iOS App/myapp/ZBarSDK/libzbar.a (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in mycontroller.o
"_ZBarReaderControllerResults", referenced from:
-[mycontroller imagePickerController:didFinishPickingMediaWithInfo:] in mycontroller.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
libzbar.a プロジェクト設定を微調整しようとしましたが (たとえば、ビルド アクティブ アーキテクチャを「YES」に設定)、シミュレーターもデバイスも動作しません。
デバイスでは機能するがシミュレーターでは機能しないという事実は、これを引き起こす奇妙なアーキテクチャ/プロジェクト設定があることを私に感じさせます。
どんな助けでも大歓迎です!