iOS应用程序崩溃发布但不调试

时间:2014-12-30 14:31:47

标签: ios xcode

有一个小问题。我的应用程序在调试模式下工作正常,但如果我更改它并将方案设置为释放而不是调试我的应用程序崩溃。有谁知道这可能导致什么?我整个上午都搜索过,但未能找到解决方案......下面包含日志。

  

Dec 30 14:26:46 Curtis-iPhone内核[0]:xpcproxy [14458]   集装箱:
  /私营/无功/移动/集装箱/数据/应用/ 75DF32AD-00B2-423A-B00E-5DC3B2063311   (沙盒)Dec 30 14:26:46 Curtis-iPhone uDropOff2N [14458]:   断言失败:12B440:libxpc.dylib + 71820   [A4F17798-F3DE-3FBC-85E3-F569762F0EB9]:0x7d Dec 30 14:26:46   Curtis-iPhone Unknown [14458]:Dec 30 14:26:46 Curtis-iPhone   uDropOff2N [14458]:接口中未知的类GMSMapView   生成器文件。 12月30日14:26:46 Curtis-iPhone uDropOff2N [14458]:    - [UIView setMapType:]:无法识别的选择器发送到实例0x170186ce0 Dec 30 14:26:46 Curtis-iPhone uDropOff2N [14458]:    *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [UIView setMapType:]:   无法识别的选择器发送到实例0x170186ce0'* 首先抛出   调用堆栈:(0x18281659c 0x192f6c0e4 0x18281d664 0x18281a418   0x18271eb6c 0x100095004 0x186fc8aa0 0x18707dfb4 0x18707deb0   0x18707d34c 0x18707cff8 0x18707cd18 0x18707cc98 0x186fc5648   0x18691d994 0x186918564 0x186918408 0x186917c08 0x18691798c   0x187252dbc 0x187253c68 0x187251dec 0x18aa8562c 0x1827cea28   0x1827cdb30 0x1827cbd30 0x1826f90a4 0x1870333c8 0x18702e3c0   0x100094d20 0x1935daa08)12月30日14:26:46柯蒂斯 - iPhone   ReportCrash [14459]:task_set_exception_ports(B07,400,D03,0,   0)失败并出错(4:(os / kern)无效参数)12月30日14:26:46   Curtis-iPhone ReportCrash [14459]:ReportCrash代理   PID 14458 Dec 30 14:26:46 Curtis-iPhone定位[10937]:   客户'udropoffbundleindent'开始显着的位置变化   12月30日14:26:46 Curtis-iPhone ReportCrash [14459]:制定   流程崩溃报告uDropOff2N [14458] Dec 30 14:26:46   Curtis-iPhone SpringBoard [53]:BSXPCMessage收到错误   消息:连接无效12月30日14:26:46柯蒂斯 - iPhone   locationd [10937]:手势EnabledForTopCLient:0,   EnabledInDaemonSettings:0 Dec 30 14:26:46 Curtis-iPhone   com.apple.xpc.launchd [1]   (UIKitApplication:udropoffbundleindent [0xe822] [14458]):   由于信号退出服务:中止陷阱:6月30日14:26:46   Curtis-iPhone ReportCrash [14459]:已保存的报告   /var/mobile/Library/Logs/CrashReporter/uDropOff2N_2014-12-30-142646_Curtis-iPhone.ips   12月30日14:26:46 Curtis-iPhone SpringBoard [53]:应用程序   'UIKitApplication:udropoffbundleindent [0xe822]'崩溃了。

谢谢,

柯蒂斯

1 个答案:

答案 0 :(得分:2)

可能的问题是指向解除分配对象的悬空指针。这可能会在发布版本中显示,因为Xcode的优化设置最大化(在默认项目中)。

您获得“[UIView setMapType:]:无法识别的选择器”的原因是接受setMapType的原始对象:已取消分配消息。在相同的RAM位置,已创建UIView。当悬空指针用于发送setMapType消息时,UIView会收到它,但不知道如何处理它。

要查找问题,请从方案列表中选择“编辑方案”。 (或菜单产品 - >方案 - >编辑方案)。在“诊断”选项卡中,启用“启用Scribble”和“启用Zombie对象”。这些将有助于找到问题的根源。 (您可以通过搜索StackOverflow和互联网找到有关这些信息的绝佳信息。)

同样有用的是为“objc_exception_throw”添加符号断点。 (在Xcode的“帮助”菜单中键入“symbolic”以获取更多信息。)这将导致执行在抛出断点之前停止,因此您可以看到它来自何处。