iPhone App无法正确复制?数据库文件仅适用于临时或应用商店分发而非开发模式

时间:2010-02-12 23:14:54

标签: iphone database sqlite crash app-store

我刚刚将此提交给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中没有显示任何行)。具体来说,我已多次完成以下操作(我每次都删除并重新安装应用程序)。

  1. 添加我的临时配置 证书到iTunes
  2. 将我的ad-hoc app build添加到iTunes
  3. 将我的iPod Touch与iTunes同步
  4. 启动我的ad-hoc app
  5. app似乎总是在第一次启动时崩溃(即,启动画面显示一秒钟,然后我看到我的iPod Touch的主屏幕)
  6. 第二次以及ad-hoc应用程序的后续启动不会崩溃,但UITableView为空。
  7. 当我在模拟器上运行应用程序或在同一个iPod上以开发/调试模式部署时,这些都不会发生。
  8. 我试图检查与应用程序初始崩溃相关联的崩溃日志(请参阅上面的步骤5),但是在该时间点没有创建崩溃日志。但是,当我将iTunes与iPod Touch同步时,会创建一个崩溃日志 ,但它也可以用波兰语写成。

    因此,似乎批准我的应用程序的应用程序商店审阅者只使用模拟器和/或开发/调试模式检查了应用程序的行为。问题可能与数据库文件的大小有关,但这是我的完全猜测。据我所知,应用程序大小或数据库大小不应限制在180兆字节附近。这也不一定能解释为什么应用程序在调试/开发模式下工作。

    有没有人见过类似的东西?

1 个答案:

答案 0 :(得分:2)

我想我想出来了(尚未测试过)......

原来整个崩溃日志都不是用波兰语写的。

有一部分说“应用程序无法及时启动”

我怀疑我的数据库太大而无法在启动应用程序时复制。

引用apple:*** iPhone OS在启动应用程序时使用监视程序计时器。如果应用程序花费太长时间来完成其初始启动,则操作系统将终止应用程序。因此原因终止的应用程序将具有异常代码0x8badf00d以及相关崩溃报告中记录的相关信息:*

*当Xcode启动应用程序时,禁用看门狗定时器以补偿Xcode连接调试器时可能产生的额外开销。因此,如果您通过从Xcode运行进行独家测试,您的应用程序的长启动可能最初会引起您的注意。***