iOS应用程序更新后打不开

标签 ios cocoa-touch keychain crash-reports sfhfkeychainutils

我们的应用程序在应用程序商店中上线了近一年,我们收到了一些来自客户的差评,更新后无法打开该应用程序。

用户报告说,在删除并随后重新安装应用程序后,他们无法启动该应用程序。 一位用户确实表示,只有在将 iPhone 恢复出厂设置后才能启动该应用程序。

我们认为该问题与钥匙串(keychain)有关,因为这似乎在系统中持续存在。因此,我们将用于访问钥匙串(keychain)的第三方库更新为 https://github.com/soffes/sskeychain 。此更改是在版本 1.4.1 中进行的。

发布 1.4.1 后,一些用户表示他们终于能够打开该应用程序了。不幸的是,由于我们无法调试该问题,因此我们无法确定哪些可能的问题已得到解决。此外,我们看到其他用户在升级到 1.4.1 和 1.4.2 后仍然遇到相同的问题。

我们还在考虑问题可能出在我们的依赖库之一上:

  • Flurry 分析
  • Facebook iOS SDK
  • PayPal MPL
  • Hockeyapp ios 库
  • ASIHTTP请求
  • 我们不使用 CoreData

我们无法使用标准 iOS 工具对此进行调试,我们甚至不能指望曲棍球应用程序为我们提供崩溃报告,因为该应用程序在发送之前已关闭。

我们不理解这种行为,并且在从应用程序商店更新应用程序时,我们显然无法控制该应用程序。应用程序删除后是否有任何内容仍然存在?如果没有,您是否知道有什么可能阻止重新安装的应用程序的打开?

编辑: 我们正在 applicationDidFinishLaunching: app delegate 的方法中配置 hockeyapp lib,如下所示:

[[BITHockeyManager sharedHockeyManager] configureWithIdentifier:QUINCY_APP_IDENTIFIER delegate:self];
[[BITHockeyManager sharedHockeyManager] setDisableUpdateManager:YES];
[[[BITHockeyManager sharedHockeyManager] crashManager] setCrashManagerStatus:BITCrashManagerStatusAutoSend];
[[BITHockeyManager sharedHockeyManager] startManager];
#ifdef DEBUG
  [[BITHockeyManager sharedHockeyManager] setDebugLogEnabled:YES];
#endif

应用程序标识符在build设置中配置,并且每个配置都不同。

最佳答案

一般来说,启动时可能会发生多个问题:

  1. 所需的库未正确链接:但这不是问题,因为这样所有应用程序启动都会崩溃!

  2. 启动时间太长,应用程序被看门狗杀死。

    如果您正在执行以下操作,这可能是您的问题:在 applicationDidFinishLaunching: 运行循环中迁移主线程上的大量数据,因此应用程序无法响应用户输入,因此将在大约 20 秒后被看门狗杀死。

    确保在不阻塞主线程的情况下进行迁移!

  3. 您在启动时遇到崩溃(不是杀死!)。由于应用程序在 HockeyApp SDK 发送崩溃之前崩溃,因此您将无法获取这些崩溃报告。

    HockeyApp iOS SDK 提供了一种处理这些问题的机制,请按照以下页面中给出的说明进行操作:http://support.hockeyapp.net/kb/how-tos-faq/how-to-handle-crashes-during-startup-on-ios

所以 2. 或 3. 是你的问题。如果您有机会直接联系受影响的用户,您可以要求提供 iOS 生成的崩溃报告。否则请检查我给出的建议。

关于iOS应用程序更新后打不开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15409323/

相关文章:

iphone - iOS截取tableview的截图

带有 El Capitan 的 Xcode 7 无法签署二进制文件以进行导出 - 无法按下 "allow"按钮

ios - 使用 -> present(viewControllerToPresent : UIViewController, animated : true, completion: nil) 调用后 rootViewController 未加载

iphone - 将生成的文件从ios下载到mac

ios - NSUserDefaults 与 UISegmentedControl

ios - 获取一个 UIKeyboard 相关的动画恰到好处

ios - 无法获取下载文件的总长度

iphone - UIProgressView 未更新

ios - secItemAdd 快速返回 -50 错误

iphone - SecKeychainItemImport、SecIdentitySearchCreate、SecIdentitySearchCopyNext