Ios 应用程序在iPhone 5S上崩溃,但在iPhone 4S上不会。

Ios 应用程序在iPhone 5S上崩溃,但在iPhone 4S上不会。,ios,iphone,objective-c,cocoa-touch,Ios,Iphone,Objective C,Cocoa Touch,我有一个iPhone应用程序,我已经在我的iPhone 4S上开发和测试过。该应用程序已在市场上发布,一些用户声称该应用程序在启动时崩溃,无法使用 我做了与用户对他们的设备完全相同的事情,在我的iPhone4S上运行相同版本的应用程序,我无法让它崩溃 我去过用户的家,将他们的手机插入我的电脑,读取日志,当我这样做时,我会发现我的手机和mac上没有出现错误 我完全不知道我如何开始找到解决这样一个问题的办法。有人有最模糊的想法吗?你可以使用lib从用户那里收集崩溃数据日志。你可以使用lib从用户那里

我有一个iPhone应用程序,我已经在我的iPhone 4S上开发和测试过。该应用程序已在市场上发布,一些用户声称该应用程序在启动时崩溃,无法使用

我做了与用户对他们的设备完全相同的事情,在我的iPhone4S上运行相同版本的应用程序,我无法让它崩溃

我去过用户的家,将他们的手机插入我的电脑,读取日志,当我这样做时,我会发现我的手机和mac上没有出现错误


我完全不知道我如何开始找到解决这样一个问题的办法。有人有最模糊的想法吗?

你可以使用lib从用户那里收集崩溃数据日志。

你可以使用lib从用户那里收集崩溃数据日志。

你考虑过在你的应用程序中安装崩溃日志吗?有很多(Flurry,TestFlight,Crittercism,曲棍球应用程序等)


大多数安装都相当简单——添加一个框架和几行代码。完成此操作后,您(希望)能够准确地看到您的应用程序在用户设备上的崩溃位置,而无需对其进行物理访问。

您是否考虑过在应用程序中安装崩溃记录器?有很多(Flurry,TestFlight,Crittercism,曲棍球应用程序等)

大多数安装都相当简单——添加一个框架和几行代码。一旦你做到了这一点,你将(希望)能够准确地看到你的应用程序在用户设备上的崩溃位置,而不需要物理访问它们

  • 一个好的开始是在你的应用程序中集成一个崩溃日志收集、崩溃报告SDK,如

    这将向您发送崩溃日志,因此您不必手动收集它们。这些工具还可以自动为您标记崩溃日志,以便您可以在代码中找到崩溃的来源

  • 您应该在发布发布版本之前对其进行测试。归档发布版本并将其作为临时版本分发。您可以使用iTunes或Organizer将保存的IPA文件加载到iDevice。问题是,您可以测试一个发布版本,该版本与您将发送到应用商店的版本相同(它们的签名不同,但版本配置相同,除非您进行了更改)

  • iPhone 5S附带64位A7处理器。您的iPhone4是一款32位设备。最有可能的处理器架构并非如此,但正如苹果所说:在发布应用程序之前,必须在实际硬件上进行测试。只有当应用程序在设备上运行时,才能检测到某些运行时更改。我建议您使用不同的型号更新测试设备集。我仍然拥有一台旧的iPhone3GS,它非常适合发现性能问题

  • 一个好的开始是在你的应用程序中集成一个崩溃日志收集、崩溃报告SDK,如

    这将向您发送崩溃日志,因此您不必手动收集它们。这些工具还可以自动为您标记崩溃日志,以便您可以在代码中找到崩溃的来源

  • 您应该在发布发布版本之前对其进行测试。归档发布版本并将其作为临时版本分发。您可以使用iTunes或Organizer将保存的IPA文件加载到iDevice。问题是,您可以测试一个发布版本,该版本与您将发送到应用商店的版本相同(它们的签名不同,但版本配置相同,除非您进行了更改)

  • iPhone 5S附带64位A7处理器。您的iPhone4是一款32位设备。最有可能的处理器架构并非如此,但正如苹果所说:在发布应用程序之前,必须在实际硬件上进行测试。只有当应用程序在设备上运行时,才能检测到某些运行时更改。我建议您使用不同的型号更新测试设备集。我仍然拥有一台旧的iPhone3GS,它非常适合发现性能问题


  • 其他人发表的一般性评论是正确的。使用预先制作的SDK将崩溃日志添加到应用程序中,并在实际设备上进行测试。我不能再多说了,但我会讲一个简短的故事,讲述我在我的一个应用程序中发现的一个类似的bug,希望它能帮助你解决这个问题

    我们的应用程序主要是iPad2用户。iPad4发布后,我们的一批又一批用户进行了升级,他们开始遇到iPad2上没有的问题。两个网络请求同时被触发,其中一个请求的结果是崩溃。我们最终发现这是一个并发错误。第一个请求的结果被处理得“太快”,并且代码到达了一个关键的代码部分,该部分对于另一个请求处理程序来说不是线程安全的


    虽然如果网络延迟波动恰到好处,iPad2上仍有可能出现此错误,但从未发生过这种情况。iPad4几乎每次都能做到这一点

    其他人发表的一般性评论是正确的。使用预先制作的SDK将崩溃日志添加到应用程序中,并在实际设备上进行测试。我不能再多说了,但我会讲一个简短的故事,讲述我在我的一个应用程序中发现的一个类似的bug,希望它能帮助你解决这个问题

    我们的应用程序主要是iPad2用户。iPad4发布后,我们的一批又一批用户进行了升级,他们开始遇到iPad2上没有的问题。两个网络请求同时被触发,其中一个请求的结果是崩溃。我们最终发现这是一个并发错误。第一个请求的结果被处理得“太快”,并且代码到达了一个关键的代码部分,该部分对于另一个请求处理程序来说不是线程安全的

    而这个bug仍然是可能的