解析某些设备崩溃的应用程序

时间:2015-08-04 10:15:59

标签: ios xcode parse-platform

我有一个使用解析作为后端的iPhone应用程序。我已经成功地集成了所有内容。我已经对它进行了测试,并且它在我的设备(模拟器和物理设备)上运行良好。 问题是我的客户抱怨在尝试从Parse获取数据时应用程序在他们的设备上崩溃。

可能是什么问题?

4 个答案:

答案 0 :(得分:1)

由于网络问题,很可能会发生这种情况,例如,如果设备处于飞行模式。当设备处于离线模式时,它会尝试几次并抛出;

0xa3884: b 0xa3860; _40-[PFTask thenCallBackOnMainThreadAsync:]block_invoke_2 + 340 at PFTask.m:329

控制台将说明;

Terminating app due to uncaught exception 'NSInternalInconsistencyException'....

这可能是您的理由,也可能不是,但有可能。

此外,我可以向您的客户建议Fabric.io用户发布您的应用。因此,您可以清楚地了解应用程序崩溃的时间,方式和原因。希望这会有所帮助。

答案 1 :(得分:1)

我建议明确添加一个解析api来监控崩溃等...

试试这个:http://try.crashlytics.com/sdk/

此外,您应该在部署与后端通信的应用程序时实施网络检查,以便您可以控制任何网络方案。

试试这个:https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html

您是否也尝试从设备中删除该应用并下载客户的方式?

崩溃也不具体。它只是悬挂,是否会杀死应用程序等......?如果您知道客户让他们检查设备日志并通过副本发送给您。

答案 2 :(得分:0)

Parse可能不是问题 您是否尝试在模拟器上“重置内容和设置”并再次启动应用程序?它仍然有用吗?

另一种可能性是你以错误的方式管理来自解析请求的错误。

示例:

func postNewPerson(person: Person?, completion: (success: Bool, result: Person?, error: NSError?) -> Void) {
    var p = PFObject(className: "Person")
    p["name"] = person.name
    p["lastName"] = person.lastName
    p.saveInBackgroundWithBlock {
        (success: Bool, error: NSError?) -> Void in
        if (success) {
            completion(success: true, result: person, error: nil)
        } else {
            completion(success: nil, result: nil, error: error)
        }
    }
}

当你调用这个函数时,你必须测试成功/错误:

service.postNewPerson(person: person) { (success, result, error) -> Void in
    if error != nil && success == true {
        /* Your request is ok */
    } else {
        /* Something wrong */
    }
 }

答案 3 :(得分:0)

我用以下内容解决了这个问题。

  1. 我已清除所有会话日志。
  2. 我在设置中将“需要可撤销会话”设置为“否”。 enter image description here
  3. 现在这两个应用程序在我的客户手机上运行良好。