【发布时间】: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