OStack程序员社区-中国程序员成长平台

标题: iOS 应用程序更新后无法打开 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 01:33
标题: iOS 应用程序更新后无法打开

我们有一个应用在应用商店上线了将近一年,我们收到了几条来自客户的差评,更新后无法打开应用。

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

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

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

我们也在考虑这个问题可能与我们的依赖库之一有关:

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

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

编辑: 我们在 applicationDidFinishLaunching: app delegate 的方法中配置 hockeyapp lib 是这样的:

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

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



Best Answer-推荐答案


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

  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/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4