IOS5でのスキャンにZBarを使用していて、それはうまく機能していました。
今iOS6にアップデートした後、それは機能しません。次のエラーが表示されます。
ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12 /MyApp name/ZBarSDK/libzbar.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
私の側の何が問題になっていますか?
私は最近同じ問題に直面しました。問題は、ZBar SDKがarmv7sアーキテクチャに対応していないことです。
私はこの方法で問題を解決しました:
Xcodeで、ターゲットの設定に移動し、 'Valid Architectures
'
から
armv7,armv7s
に
armv7
この変更は、アプリが新しいiPhone5プロセッサーの可能な最適化を利用しないことを意味しますが、サードパーティのライブラリがアップグレードしたり、16進エディターで混乱したりする必要はありません。
Hgソースのダウンロード/再コンパイルのチュートリアルはすばらしいですが、すべてを実行する必要はありません。
http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/ を参照してZBarSDK-1.3.1.dmgをダウンロードするだけで、最新のアーキテクチャのすべてがそのまま機能します(私の場合、armv7、armv7s)。
更新:
XCode 5、iOS 7、またはアーキテクチャーarm64のZBarSDKに関する問題を報告した方もいらっしゃいますが、本日このプロジェクトに戻って同様の問題を経験したところ、iOS 7で動作するようにコンパイルされたZBarSDKライブラリがあることがわかりました:- http://www.nerdvision.net/app-development/ios/zbar-sdk 。古いファイルを新しいファイルで置き換え、プロジェクトをコンパイルしました。プロジェクトのビルド設定のアーキテクチャがamrv7、arm64($ ARCHS_STANDARD)に設定され、Base SDKがiOS 8.0に設定されており、[アクティブなアーキテクチャのみビルド]フラグが[はい]に設定されていることに注意してください。
SOこれについての質問: zbar SDKはarmv7s(iPad 4 iOS 7)では機能しません)
ヒントを提供してくれた@cdescoursに感謝します!
同じ問題がありますが、armv6
とarmv7
を追加しただけで、iOS6で動作します。 armv6
を挿入するだけです。
バイナリライブラリにarmv7s用のコードがありません。したがって、現在のアーキテクチャ用に再コンパイルする必要があります。
ソースを再コンパイルし、zbarのソースコードをダウンロードして、新しいプロジェクトにコンパイルします。それは簡単です。
Mercurialリポジトリのクローンを作成し、Xcodeでビルドします。それは非常に簡単です。リポジトリへのリンクは次のとおりです。
私はIOS開発を学んでいます。数日掘り下げた後、
これは、ZBar SDKをインストールするための tutorial です。
1、受け入れられた答えは正しいですが、いくつかの制限があります。 (試してみました!)
2、代替ソリューションは here です。 (試してみました!)
3、すべての異なるアーキテクチャを分離してビルドし、lipoを使用してそれらをバインドするのが最善です: 素晴らしいソリューション (試して、見事な!)
それらのアーキテクチャを理解するためのいくつかの読み:
彼のブログで提供されているチュートリアルコードRDCをダウンロードした後、同じ問題が発生しました。非常に便利な投稿ですが、ここで最も役立つ回答はRacZoによって3/29に投稿されました。元のZBarSDK-1.3.1.dmgイメージをダウンロードし、プロジェクトからZBarSDKを削除して、元のイメージに置き換えました。できました。