25

我在使用 ZBarSDK(iOS 的条形扫描库)时遇到了同样的错误。当我将它上传到我的开发设备或在 iOS6 模拟器上测试它时,它运行良好。但是,当我尝试为 Distribution 运行它时,它失败了:

(空):文件是通用的(3 个切片)但不包含一个(n)armv7s 切片:/Users/quique123/Documents/iphone apps/ScanThis/ZBarSDK/libzbar.a 用于架构 armv7s

其中 libzbar.a 是来自 sdk 的库。

有任何想法吗?

4

7 回答 7

16

打开 ZBar 代码 Mercurial 代码仓库

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/summary

转到 bz2/zip/gz 链接以下载当前源(首选格式)

http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.bz2(截至发布日期) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/ archive/fa84e0427c24.zip(截至发布日期) http://zbar.hg.sourceforge.net/hgweb/zbar/zbar/archive/fa84e0427c24.tar.gz(截至发布日期)

打开“iphone”子目录

打开“zbar.xcodeproj”文件

在方案的菜单中选择 libzbar 并在支持的架构中构建您自己的二进制版本

打开该项目的 DerivedData 并导航到 Build/Products/

查看 libzbar.a 的所有文件夹

于 2012-09-20T01:04:17.797 回答
11

只需从 Target Aguilar 设置中的 Valid Architectures 中删除不良架构,您就可以开始了 :)

于 2012-09-13T02:30:15.177 回答
7

当您选择目标 > 构建设置(全部)> 架构 > 有效架构时。

当您收到上述错误时,请通过双击该行并选择 armv7s 并按 (-) 按钮来删除 armv7s(现在可能是 [armv7 armv7s])。

就我而言,这解决了错误。不知道这是否会进一步产生任何不利影响..

编辑:现在我确信这至少有一个缺点:该项目不适用于 iPhone 5。解决方案是重新编译 ZBar 源,如此处所述:ZBar library for iPhone 5(ARMV7s)

于 2012-09-13T09:47:44.490 回答
4

您可以在下面的 URL 中下载 ZBarSDK 的新版本。

http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/

于 2013-08-05T07:12:00.643 回答
1

我刚刚在 Build Settings / Valid Architectures: "armv7" 中替换了 2 行 "armv6" 和 "armv7"

(通常我只在提交到 iTunes 时才会收到此链接器错误,但在设备中调试时不会出现此错误)

于 2012-09-23T19:48:02.843 回答
0

只需删除“armv7s”,这将工作:)

于 2013-01-22T12:37:18.167 回答
0

将“仅构建活动架构”设置为“是”以进行发布。我这样做解决了我的问题,因为我面临同样的问题。

于 2014-06-27T12:37:09.757 回答