【问题标题】:iPhone Build fails - XCode 5.1.1 iOS 7iPhone 构建失败 - XCode 5.1.1 iOS 7
【发布时间】:2014-08-06 08:44:11
【问题描述】:

我已经按照这个条形码扫描仪教程http://rdcworld-iphone.blogspot.com.au/2013/03/how-to-use-barcode-scanner-br-and-qr-in.html 在模拟器中运行良好。但是,当我连接我的 iPhone 并尝试构建它时,它会显示“构建失败”。没有错误。如果有帮助,我的手机版本是 7.1.2。

我应该遵循什么过程来找出失败的原因是什么?

编辑:

我没有在项目名称中使用 _ 或空格。

编辑:

iPhone 的错误日志:

ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a file '/Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a' for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

iPhone 4 64 位模拟器的错误日志:

ld: warning: ignoring file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a (3 slices)
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
      objc-class-ref in ViewController.o
  "_ZBarReaderControllerResults", referenced from:
      -[ViewController imagePickerController:didFinishPickingMediaWithInfo:] in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

(null): Ignoring file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a (3 slices)

(null): "_OBJC_CLASS_$_ZBarReaderViewController", referenced from:

(null): Objc-class-ref in ViewController.o

(null): "_ZBarReaderControllerResults", referenced from:

(null): -[ViewController imagePickerController:didFinishPickingMediaWithInfo:] in ViewController.o

(null): Symbol(s) not found for architecture x86_64

(null): Linker command failed with exit code 1 (use -v to see invocation)

编辑: 通过下载和使用最新的 zbar sdk 框架,我让它在 iPhone 上正常工作。然而,现在模拟器并没有像它想要的那样构建旧的!

有人知道如何让手机和模拟器都开心吗?

编辑 2:

我使用旧的库让它工作,但不是最新的,这是我工作必须做的。对于旧图书馆,我做了以下事情:

1) 创建一个新应用并使其通用。 2) 遵循正常的教程步骤,除了使用故事板而不是 xib 文件并将项目设置为同时用于 iphone 和 ipad。也不要在指定使用哪个 Xib 的 tute 末尾附近输入代码,因为我没有使用一个! 3)在构建设置中将架构和有效架构设置为“armv7” 4) 在构建设置中,将 Build Active architecture only 设置为 YES

我最近所做的是删除旧的 ZBar 库并替换它们这些 http://www.nerdvision.net/app-development/ios/zbar-sdk

它给了我这个错误:

ld: warning: ignoring file /blahblah/BarcodeScannerNew/BarcodeScannerNew/zbar_iOS7_Fix/libzbar.a, missing required architecture i386 in file /blahblah/BarcodeScannerNew/BarcodeScannerNew/zbar_iOS7_Fix/libzbar.a (3 slices)

Undefined symbols for architecture i386:

  "_OBJC_CLASS_$_ZBarReaderViewController", referenced from:

      objc-class-ref in AACsViewController.o

  "_ZBarReaderControllerResults", referenced from:

      -[AACsViewController imagePickerController:didFinishPickingMediaWithInfo:] in AACsViewController.o

ld: symbol(s) not found for architecture i386



clang: error: linker command failed with exit code 1 (use -v to see invocation)

我认为这意味着它需要旧的(我假设是 32 位)库,而不是最新的库。不知道如何修复它,因为我不能同时包含新旧 Zbar 文件,因为它给出了关于重复文件的错误。

【问题讨论】:

  • 您是否有为该应用创建的开发者帐户和开发配置文件。
  • 错误是什么?可能您没有为目标设置 CodeSign 身份。
  • 我确实有一个开发者帐户。我没有将应用程序放到应用程序商店的配置文件,只是测试我目前感兴趣的全部内容。 @Timur 没有错误 - 只是一条消息说构建失败。
  • 肯定有错误。您可以在导航区域(左窗格)的问题选项卡中看到它,如果它说明了有关代码设计的内容,您需要创建开发证书然后选择它(raywenderlich.com/8003/… 和第 2 部分可能会有所帮助)。此外,为了在设备上进行测试,您需要具有通配符 id( * ) 或定义的捆绑包 id 的开发人员配置文件。

标签: ios objective-c xcode ios-simulator


【解决方案1】:

iOS7 似乎不支持 ZBar。上次更新是在 iOS4 前后,当时发生了很多变化。

来源ZBar FAQ

【讨论】:

  • 啊,嗯..这改变了事情。我一直在为后来的框架寻找用故事板做条形码和二维码扫描仪的教程,但从来没有运气。可能只是我放入谷歌搜索的内容。不确定。
  • 看起来它现在是核心的一部分。看看infragistics.com/community/blogs/torrey-betts/archive/2013/10/…
  • 我的老板似乎很重视使用 ZBar,它最近使用旧库开始工作,但他希望我使用最新的 - 请参阅我的原始帖子以获取更新。但是,如果我无法使用最新版本使其正常工作,我会尝试您提供的链接。感谢您的回复!
【解决方案2】:

错误提示 zBar 库不是为 64 位模拟器编译的。因此,您要么从具有此支持的源代码构建库,要么等待有人这样做。或者只是不要为此使用 64 位模拟器。 :)

This 的回答可能会帮助您在 64 位模拟器上使用它。

如果你只能支持iOS 7+,你可以使用系统内置的扫码功能。

【讨论】:

  • 感谢您告诉我。你能给我一个内置系统代码扫描器教程的链接吗?我已经搜索过自己,但我找不到 Xcode 新手可以用来让它与故事板一起使用的东西。
  • 看来我需要支持 iOS 6+,所以我需要一些适用于 6 和 7 的东西
  • nshipster.com/ios7 - 这应该会有所帮助。 AVCaptureMetaDataOutput 部分。在@gnuchu 的答案下方发表评论也可以提供帮助。如果需要支持iOS 6,可以使用ZXing(github.com/TheLevelUp/ZXingObjC)。
  • 感谢您的回复,如果我无法解决当前的 zbar 问题,我会查找 ZXing(请参阅我更新的帖子)。 Boss 想使用 Zbar 和最新的库,所以现在必须先尝试。
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 2022-01-09
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多