我刚刚将此提交给Apple支持,但我想知道这里是否有人遇到类似的事情。
摘要:从iTunes应用商店或ad-hoc发行版下载时,我的iphone应用程序崩溃,但在模拟器上以调试模式运行时,不会“崩溃”在我的iPod上
DETAILS:该应用包含一个相当大的sqlite数据库文件(~180 meg未压缩,56 meg压缩)。这可能是相关的。
启动时,应用程序应复制数据库(如有必要)。在此之后,应向用户呈现包含大约6,000行的表视图。这些行中显示的信息来自于读取上述数据库中的表格。
当我在iPhone 模拟器中运行应用程序时,这一切都正常工作,当我在 iPod 上以调试模式运行应用程序时 。
该应用程序已获Apple批准。但是,当用户开始通过iTunes下载应用程序时,我开始收到电子邮件,说UITableView没有填充任何信息。为了调查,我从应用程序商店下载了应用程序的副本,我看到了类似的结果(即显示了UITableView,但行是空的)。我相信我能够使用我的应用程序的临时分发来重现问题。
ad-hoc分发的行为与app-store下载类似(即在UITableView中没有显示任何行)。具体来说,我已多次完成以下操作(我每次都删除并重新安装应用程序)。
我试图检查与应用程序初始崩溃相关联的崩溃日志(请参阅上面的步骤5),但是在该时间点没有创建崩溃日志。但是,当我将iTunes与iPod Touch同步时,会创建一个崩溃日志 ,但它也可以用波兰语写成。
因此,似乎批准我的应用程序的应用程序商店审阅者只使用模拟器和/或开发/调试模式检查了应用程序的行为。问题可能与数据库文件的大小有关,但这是我的完全猜测。据我所知,应用程序大小或数据库大小不应限制在180兆字节附近。这也不一定能解释为什么应用程序在调试/开发模式下工作。
答案 0 :(得分:2)
我想我想出来了(尚未测试过)......
原来整个崩溃日志都不是用波兰语写的。
有一部分说“应用程序无法及时启动”
我怀疑我的数据库太大而无法在启动应用程序时复制。
引用apple:*** iPhone OS在启动应用程序时使用监视程序计时器。如果应用程序花费太长时间来完成其初始启动,则操作系统将终止应用程序。因此原因终止的应用程序将具有异常代码0x8badf00d以及相关崩溃报告中记录的相关信息:*
*当Xcode启动应用程序时,禁用看门狗定时器以补偿Xcode连接调试器时可能产生的额外开销。因此,如果您通过从Xcode运行进行独家测试,您的应用程序的长启动可能最初会引起您的注意。***