我通过Crashlytics在我的应用中遇到此错误。我无法找到崩溃发生的地点和方式。以下是Crashlytics的日志:
Thread : Crashed: com.apple.main-thread
0 CoreLocation 0x0000000183f62304 (null) + 60044
1 CoreLocation 0x0000000183f230f0 (null) + 1436
2 CoreLocation 0x0000000183f230f0 (null) + 1436
3 CoreLocation 0x0000000183f2261c (null) + 1980
4 CoreFoundation 0x0000000183754c9c __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
5 CoreFoundation 0x0000000183754940 __CFRunLoopDoTimer + 884
6 CoreFoundation 0x0000000183752054 __CFRunLoopRun + 1520
7 CoreFoundation 0x0000000183680dc0 CFRunLoopRunSpecific + 384
并且还说明了这一点: 崩溃:com.apple.main-thread EXC_BAD_ACCESS KERN_INVALID_ADDRESS位于0x6136383561626000
任何人都能指出我正确的方向吗?感谢
答案 0 :(得分:0)
当应用程序变为非活动状态时,计时器需要无效。在applicationWillResignActive方法中,使计时器对象无效。您可以使用applicationDidBecomeActive方法重新设置它。来自文档:
您应该使用此方法暂停正在进行的任务,禁用计时器和 降低OpenGL ES帧速率。游戏应该使用这种方法 暂停比赛。处于非活动状态的应用程序应该做到最小 在等待转换到活动或后台时工作 状态。
如果您要构建需要在后台收集位置的应用,请确保使用位置更新后台功能。
您还可以试用适用于iOS的HyperTrack SDK,它会为您设置更多功能,以便您可以构建位置功能,而不必担心这项繁重的工作。 (免责声明:我在HyperTrack工作。)