2010-01-16 34 views
8

因此继承人的故事,苹果公司最近拒绝了我的应用程序,说它在他们的手机上坠毁(iPhone 3G和iPod touch 2g),并发送给我两个崩溃日志。我无法从中理解这一点。苹果拒绝了我,不知道为什么,或者如何解决它

他们在这里。

Incident Identifier: BA4382DD-DA6A-47F7-800D-43AD30919064 
CrashReporter Key: 53e41ca2a52f91affddc86f49ce9c4be851fcfd6 
OS Version:   iPhone OS 3.1.2 (7D11) 
Date:    2010-01-14 15:59:57 -0800 

Free pages:  317 
Wired pages:  11274 
Purgeable pages: 0 
Largest process: iConicCars 

Processes 
     Name     UUID     Count resident pages 
     amfid <b4f3e5a61456edf85b6ada59064ec311>  93 
    iConicCars <851d264eb074e465891dcd67b67a8e79> 5928 (jettisoned) (active) 
    MobileMail <0798395dde43ca46317db6e674dfbbfd>  503 (jettisoned) 
MobilePhone <82c9bd8583f4b09706a16b08e641a4b9>  464 (jettisoned) 
    notifyd <d6b12a4e424e10e5ce91efd8d39f22af>  77 
    BTServer <c940c4c7252113a7303cc1f7d1429c17>  253 
    CommCenter <b1d6c4fe3ce2bc0374471196ab15b8d4>  313 
SpringBoard <c5c29b56a2bb445fc73203e03f67fa78> 1954 (active) 
    accessoryd <32ceed5c3c32625ac23cd870f61364af>  107 
    configd <aae411e8289912124271f109ceee8f85>  290 
    fairplayd <cdce5393153c3d69d23c05de1d492bd4>  156 
    mDNSResponder <db98efaea94329959789f73a16f9f46e>  123 
mediaserverd <612fbbfa0546609cf6c6b13ae6f333cf>  767 (jettisoned) 
    lockdownd <171865bfe3725c3d5047df8c00ed5d77>  294 
    syslogd <1cb3e9f2375fad9e345bd16655be4a50>  66 (jettisoned) 
    launchd <c5bc115d47313218505394f96770782a>  76 

**End** 

Incident Identifier: 8E52889B-0260-4AAD-A39C-FC170FB637D4 
CrashReporter Key: 45d118e8a4be9b3163eab905af870f05dfddb12d 
OS Version:   iPhone OS 3.1.2 (7D11) 
Date:    2010-01-14 13:41:31 -0800 

Free pages:  309 
Wired pages:  12550 
Purgeable pages: 0 
Largest process: iConicCars 

Processes 
     Name     UUID     Count resident pages 
     iConicCars <851d264eb074e465891dcd67b67a8e79> 5641 (jettisoned) (active) 
     SCHelper <b87bd080a670f9512426e8721dc1f03c>  103 
      misd <a41e5d5f4b8922ab272c55df84aec4fd>  140 
    installd <620ede129454bcd824f0b6cec13b15d3>  212 
SpringBoard <c5c29b56a2bb445fc73203e03f67fa78> 1545 (jettisoned) (active) 
     iapd <fea164e93479b90e1dd39a293dd3865c>  251 (jettisoned) 
    syslogd <1cb3e9f2375fad9e345bd16655be4a50>  83 (jettisoned) 
mediaserverd <612fbbfa0546609cf6c6b13ae6f333cf>  302 (jettisoned) 
    BTServer <c940c4c7252113a7303cc1f7d1429c17>  345 
    lockdownd <171865bfe3725c3d5047df8c00ed5d77>  279 
    notifyd <d6b12a4e424e10e5ce91efd8d39f22af>  104 
    CommCenter <b1d6c4fe3ce2bc0374471196ab15b8d4>  151 
    configd <aae411e8289912124271f109ceee8f85>  264 
    fairplayd <cdce5393153c3d69d23c05de1d492bd4>  517 
    mDNSResponder <db98efaea94329959789f73a16f9f46e>  100 
    launchd <c5bc115d47313218505394f96770782a>  67 

**End** 

他们说,即使重启后,也没有什么区别。 继承人踢球者,它完美地在我的iPhone 3GS,并在模拟器没有内存泄漏。

那么,我究竟做了什么?

UPDATE:[会话开始于2010-01-16 20点01分44秒+ 1300]

登录在模拟器 GNU GDB 6.3.50-20050815(苹果版GDB-1346)( Fri Sep 18 20:40:51 UTC 2009) Copyright 2004 Free Software Foundation,Inc. GDB是GNU通用公共许可证的免费软件,欢迎您在012一定条件下。 输入“show copying”查看条件。 GDB绝对没有保修。请输入“显示保修”以了解详情。 这GDB被配置为“x86_64的 - 苹果 - 达尔文” .sharedlibrary应用负载规则所有附加 处理1152 使dyld:无法加载插入库:/usr/lib/libgmalloc.dylib

数据格式化暂时不可用,将在“继续”后重新尝试。 (目前还不能调入装载机,它已被锁定。) 警告:找不到“_sigtramp”最小符号 - 回溯可能是不可靠 不能在地址0x0 访问内存地址0x0 无法访问内存(GDB)

+0

更新: 我有2.8 MB的图像存储在应用程序中的数组 - 这会不好吗?我已经购买,并通过类似的应用程序,只使用较小的图片。 – 2010-01-16 06:01:16

+0

文件系统上2.8MBs(如JPG尺寸)?因为一旦加载,它们在内存中的体积就会更大。 您可以放大图片,但您可能需要重新加载应用才能根据需要加载图片。 – 2010-01-16 06:08:28

+0

桌面上的图像文件夹为2.8 megs。 – 2010-01-16 06:35:37

回答

5

正如其他人所说,你正在使用太多的内存。

如果您正在使用多个视图控制器页面,请尝试此简单测试 - 使用ObjectAlloc工具运行您的应用程序。点击某个东西来调出一个子视图,你会看到你的记忆增加 - 现在消除该视图并回到主视图,记忆应该下降。如果不是,那就是你的问题(或者无论如何,但这是一个起点)。

要尝试跟踪这个问题,请在每个视图控制器的dealloc中放置断点并查看实际调用的内容。对于没有像您期望的那样发布的视图控制器,在ObjectAlloc中,您可以看到每个对象在对象的发布位置,以及在不应该这样做时保留该对象的内容。

一般来说,ObjectAlloc流程应该看起来像一个始终上升和下降的图表,而不是不断上升。

此外,如果您使用大量图片,请考虑重新调整大小以适合您所需的确切大小,而不是以更大的大小和缩放比例开始。使用那么多的内存必须是由于使用图像而不是释放它们。如果您仍然提及您保留的内存,泄漏将不会报告任何内容。

此外,购买较旧的触摸进行测试。

+0

“另外,如果您使用大量图片,请考虑重新调整大小以适合您所需的确切大小,而不是从更大的大小和缩放比例开始。” 我认为这可能是问题..阅读对我刚才写的问题的评论。 – 2010-01-16 06:02:49

+0

我对此评论过。实际上你没有必要让它们全部加载,你应该改变它,只在你需要的时候加载图像,摆脱你没有使用的图像。 – 2010-01-16 06:11:43

+0

我仍然建议让Touch试试看...虽然我敢打赌这对我们有很大的帮助。我很高兴这似乎是主要问题。 – 2010-01-16 19:59:14

3

您的应用使用了太多的内存。使用仪器(对象分配或泄漏)检查您的应用程序并查看是否可以减少内存分配。

+0

什么是减少内存分配的好方法?最好让系统管理它(NSString * string = @“hello”;)或自己动手,如(NSString * string = [[NSString alloc] init];) – 2010-01-16 05:41:51

+0

对于字符串,'NSString * const string = @“你好”;'如果可能的话。如果你自己这样做,请记住“释放”它。 – kennytm 2010-01-16 05:45:58

2

你的应用程序正在使用的方式,太多的内存。它永远不会在具有128 MB RAM的旧设备上运行。

+1

你能指定你需要更新的设备来运行吗?他们只会变得越来越快。 – 2010-01-16 05:42:26

+0

您是否真的想要让10-20万人退出竞选以购买应用程序,只需花一些时间进行优化并使其适用于所有人?对于一款游戏,如果您只想使用最新的OpenGL功能,我可能会看到这种说法。 – 2010-01-16 05:59:58

+0

恩..我会尽量优化它。 – 2010-01-16 06:01:53

5

查看“免费页面:309”?不好,意味着你正在使用一堆内存,然后当它全部使用它崩溃。可清除页面= 0是无法回收的内存,所以它是一个内存问题。

执行“构建和分析”并运行“泄漏”来查找内存泄漏和您可以更有效地运行的位置。

+0

虽然我没有泄漏。 AL1记忆似乎是/记帐的。 – 2010-01-16 05:47:42

3

您的iPhone 3GS和模拟器拥有比其他iPhone OS设备更多的内存。要在所有设备上工作,您应该使用不超过20 MB的内存。

+0

你怎么知道它现在使用多少? – 2010-01-16 05:47:11

+0

您是否曾尝试在乐器中运行应用程序(运行 - >使用性能工具运行...) – kennytm 2010-01-16 06:08:56

+0

是的,我有。并认为看起来对我好。 (尽管这并不多说) – 2010-01-16 07:03:57

相关问题