2016-09-19 74 views
5

我们有一款针对iOS 8.4的应用程序。它在使用SDK 9.3构建的iOS 8-10上运行良好。但是,运行在iOS 8上的SDK 10.0创建的版本(设备和模拟器)会不断崩溃。例如:使用iOS 10 SDK构建的应用程序在iOS 8上运行时崩溃

malloc: *** error for object 0x79e80c60: incorrect checksum for freed object - object was probably modified after being freed. *** set a breakpoint in malloc_error_break to debug

这不会发生在iOS 8.4。

我们创建了一个针对8.4和SDK 10.0的新项目,并且仅向项目添加了单个失败的单元测试。 在8.4模拟器中运行这个项目似乎是不可能的。测试永远不会执行,模拟器似乎处于某种循环。

任何人都可以在iOS 8和SDK 10中重现这个问题吗?

+0

我有(我怀疑是)同样的问题。一些额外的信息(无论如何):在模拟器/设备上都会发生崩溃。应用程序启动时(有时仍在启动屏幕中)有时会发生崩溃,有时在转换过程中(例如,在NavigationVC中推送VC),有时会在返回时导致崩溃。我看到它发生在'initWithCoder'或'UIImage(named:_)'等地方。有时我会遇到上述错误,但有时我会遇到'无效指针从空闲列表malloc错误中退出。 –

+0

更新(2分):1.可能有多种原因,但很有可能有一个与'UImage(named:)'有关 - 我删除了所有对此的引用,大多数崩溃都停止了。这可能与iOS 10中引入的扩展范围颜色空间有关吗? 2.启用僵尸(在“编辑方案”菜单中)可防止所有崩溃(我对内存管理不够熟悉,无法理解这意味着什么)。 –

+0

感谢您的意见,我会尝试提出一些在孤立环境中说明这些问题的项目。 – Christoph

回答

2

解决了降低部署目标到iOS 8.2

来源: EXC_BAD_ACCESS only on xcode 8 running iOS 8

哪个环节: https://forums.developer.apple.com/thread/60919

其中包含以下信息:

更新:如果您的部署目标被设置为8.3或8.4和 有资产目录,那么即使您实际上没有16位或P3资产,您也会收到相同的错误消息 。在这种情况下,您需要将部署目标降至8.2,或将 升至9.x.

另外请注意,有人提到,Xcode 8.1(目前在测试版)修复了这一切。我还没有测试过自己。

+0

感谢您指出这一点:)第一轮测试似乎没问题!如果我们确定,会接受你的答案。再次感谢! – Christoph

+0

具有相同的错误但将目标降至8.2并未解决问题。甚至没有8.0。它主要发生在查看交易上。有人有想法吗? –