.net - MonoTouch 应用程序无法构建/部署到 iphone 设备,但它在 iSimulator 上运行良好

标签 .net ios ios6 xamarin.ios monodevelop

我正在使用 Monotouch 的 RedLaser 绑定(bind)来创建一个扫描条形码的应用程序。它在 iSimulator 上工作得很好,就像一个魅力,但是当我尝试部署到真实设备时(切换运行环境 Debug|Simulator -> Debug|iPhone),我什至无法构建。

我正在使用 MonoTouch 6.0.8、MonoDevelop 3.0.6、XCode 4.5.2。

此外,我正在使用 iphone 3GS 设备进行部署。该设备运行的是 iOS 6.0,这就是我的应用程序的目标。我在 MonoTouch bugzilla 上发现了一个具有相同错误代码 here 的错误,建议将目标从 6.0 -> 5.1 更改。我这样做了,但没有改变任何事情。

我已经在 Xcode Organizer 上设置、验证和安装了我的配置文件,证书也是如此。我可以看到两者都很好。

构建输出如下,如有任何帮助,我们将不胜感激。 谢谢

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -miphoneos-version-min=5.1 -gdwarf-2 -arch armv7 -std=c99 -I/Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -c /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/main.armv7.m -o /Users/hasnainaltaiar/Dev/Leopard/SVN/trunk/LD6419/Platforms/iOS/Leopard.Delivery.iOS/Leopard.Delivery.iOS/obj/Release/mtouch-cache/main..armv7.cache.M0wr77LlBANF6vKjGqQvyVnmWEk=.o /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -miphoneos-version-min=5.1 -gdwarf-2 -arch armv7 -std=c99 -I/Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -c /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/registrar.m -o /Users/hasnainaltaiar/Dev/Leopard/SVN/trunk/LD6419/Platforms/iOS/Leopard.Delivery.iOS/Leopard.Delivery.iOS/obj/Release/mtouch-cache/registrar.armv7.cache.Zar9bxp0AZNxwVcgrsOMEFHv0k4=.o /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -Wl,-no_pie -miphoneos-version-min=5.1 -gdwarf-2 -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/Mono.Security.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/Leopard.Domain.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/RedLaser.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/System.Core.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/mscorlib.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/System.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/monotouch.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/LeopardDeliveryiOS.exe.armv7.o /Users/hasnainaltaiar/Dev/Leopard/SVN/trunk/LD6419/Platforms/iOS/Leopard.Delivery.iOS/Leopard.Delivery.iOS/obj/Release/mtouch-cache/main..armv7.cache.M0wr77LlBANF6vKjGqQvyVnmWEk=.o /Users/hasnainaltaiar/Dev/Leopard/SVN/trunk/LD6419/Platforms/iOS/Leopard.Delivery.iOS/Leopard.Delivery.iOS/obj/Release/mtouch-cache/registrar.armv7.cache.Zar9bxp0AZNxwVcgrsOMEFHv0k4=.o -o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/LeopardDeliveryiOS -framework CFNetwork -framework Foundation -framework UIKit -framework AudioToolbox -framework QuartzCore -framework CoreGraphics -framework AVFoundation -framework CoreMedia -framework CoreVideo -framework OpenGLES -framework Security -framework SystemConfiguration -lz -liconv -u _mono_pmip -u _monotouch_create_managed_ref -u _monotouch_release_managed_ref -u _monotouch_IntPtr_objc_msgSend_IntPtr -u _monotouch_IntPtr_objc_msgSendSuper_IntPtr -u _CloseZStream -u _CreateZStream -u _Flush -u _ReadZStream -u _WriteZStream -lmono-2.0 -lmonotouch -L/Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib -lgcc_eh -force_load /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/libRedLaserSDK.a Process exited with code 1, command: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++ -Wl,-no_pie -miphoneos-version-min=5.1 -gdwarf-2 -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/Mono.Security.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/Leopard.Domain.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/RedLaser.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/System.Core.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/mscorlib.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/System.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/monotouch.dll.armv7.o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/LeopardDeliveryiOS.exe.armv7.o /Users/hasnainaltaiar/Dev/Leopard/SVN/trunk/LD6419/Platforms/iOS/Leopard.Delivery.iOS/Leopard.Delivery.iOS/obj/Release/mtouch-cache/main..armv7.cache.M0wr77LlBANF6vKjGqQvyVnmWEk=.o /Users/hasnainaltaiar/Dev/Leopard/SVN/trunk/LD6419/Platforms/iOS/Leopard.Delivery.iOS/Leopard.Delivery.iOS/obj/Release/mtouch-cache/registrar.armv7.cache.Zar9bxp0AZNxwVcgrsOMEFHv0k4=.o -o /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/LeopardDeliveryiOS -framework CFNetwork -framework Foundation -framework UIKit -framework AudioToolbox -framework QuartzCore -framework CoreGraphics -framework AVFoundation -framework CoreMedia -framework CoreVideo -framework OpenGLES -framework Security -framework SystemConfiguration -lz -liconv -u _mono_pmip -u _monotouch_create_managed_ref -u _monotouch_release_managed_ref -u _monotouch_IntPtr_objc_msgSend_IntPtr -u _monotouch_IntPtr_objc_msgSendSuper_IntPtr -u _CloseZStream -u _CreateZStream -u _Flush -u _ReadZStream -u _WriteZStream -lmono-2.0 -lmonotouch -L/Developer/MonoTouch/SDKs/MonoTouch.iphoneos.sdk/usr/lib -lgcc_eh -force_load /var/folders/_l/0pvrtd6x6qg83sz4_0906b5c0000gn/T/tmpee06e1f.tmp/libRedLaserSDK.a Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_CLLocationManager", referenced from: objc-class-ref in libRedLaserSDK.a(StatusManager.o) ld: symbol(s) not found for architecture armv7 collect2: ld returned 1 exit status

错误 MT5202: native 链接失败。请查看构建日志。

-------------------- 完成--------------------

项目没有指定包标识符。生成的 'leoparddeliveryios' 以匹配配置文件。

最佳答案

来自错误信息:

Undefined symbols for architecture armv7: "_OBJC_CLASS_$_CLLocationManager"

似乎库已更新,现在依赖于 CoreLocation

编辑绑定(bind)项目中的 [LinkWith] 属性并将 CoreLocation 添加到它的 Frameworks 属性中,然后重建绑定(bind)(然后重建你的申请)。如果这解决了问题,请提交错误报告,以便在 github 存储库中修复它。

注意:作为快速测试,您还可以将以下选项添加到项目的调试发布配置中(在mtouch additional arguments 在 MonoDevelop 中项目的选项中)。

-gcc_args="-framework CoreLocation"

这将导致相同的结果 - 除了您需要为您正在使用的每个项目(和配置)复制该修复(因此发现问题很有用,但不是修复它的真正好方法)。

关于.net - MonoTouch 应用程序无法构建/部署到 iphone 设备,但它在 iSimulator 上运行良好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332416/

相关文章:

c# - 结构相等性如何与 Int32 一起使用?

ios - 链接到伞形框架

iphone - managedObjectContext 删除对象 :matches not deleting data from Core data base?

objective-c - 解析 JSON 时出错

iphone - 如何在 iOS 6 中更新 MKMapview?

ios - 如何放大和缩小 scrollView 中的 ImageView

java - java中如何从数据库生成实体类

c# - MEF 4.5 中缺少 CompositionInitializer。我可以用什么代替?

c# - 在 DataGridView 中显示导航属性的属性(二级属性)

objective-c - iOS6 Facebook : What to do if user has not configured Facebook?