發(fā)現(xiàn)Zbar在識別的時候中文有些會弄成亂碼,后來發(fā)現(xiàn)因為這個框架是日本人弄出來的,所以你懂的。
這里有鏈接:http://blog.csdn.net/xueer8835/article/details/7955590 可以搞定識別的問題,其實就是自己重新弄一個libzbar.a的文件去替換原有的。后來我發(fā)現(xiàn)我的情況還是沒有解決,經(jīng)過測試后發(fā)現(xiàn)我的二維碼是用UTF-8生成,所以應(yīng)該用UTF-8
然后我替換了之后發(fā)現(xiàn)一個問題,系統(tǒng)報錯:invalid bitcode signature。字面上看完全不懂啥意思,找了半天想起了,libzbar 和我原來那個的大小差別有點大。我自己本來那個6m多,可是我新弄的那個只有1m,這讓我想到可能我的那個支持模擬器和真機,所以比較大,按照這個思路,網(wǎng)上找一個方法,可以把兩個libzbar 合為一個的方法,我試了一下,果然有效果了!!!
方法如下:
主要思路:
- 重編譯時,設(shè)置Build Settings下的Architectures 和 valid Architectures為 arm64, armv7 , armv7s.
- 重編譯時,設(shè)置iOs deployment target 為ios 7.0 .
- 在Product菜單中選擇Schema->Edit Schema->Run->Build Configuration 為: Release。
- 選擇libzbar 分別選擇不同實機和設(shè)備, 點擊三角Run。
- 在Xcode 工作區(qū)Products下非紅色的libzbar.a ,右鍵找到其所在目錄。 返回上一級
- 運行: lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a
- 拖拽 生成的libzbar.a 到 xcode 工程目錄中, 選擇copy到工作區(qū)。
- 完成!