I\'m on macOS Sierra, Xcode 8, and get crashes whenever I try to Simulate Background Fetch on an actual iOS 10 device. This does NOT occur when using the simulator. This o
As pointed out by others. it is not a crash, but an auto breakpoint triggered by system. As explained here by eskimo:
So, why does it stop in mach_msg_trap? The goal is to give you a chance to set a breakpoint in your background fetch handling code, so Xcode forces your app to stop, just like it would if you hit the pause button (Debug > Pause). It stops in mach_msg_trap because that’s where your main thread is sitting when your app is suspended in the background. In short, when you do a Debug > Simulate Background Fetch and stop in mach_msg_trap:
- That’s expected behaviour
- It’s not a sign of any problem
- You can safely continue execution via Debug > Continue
Personally, I see it more like a bug than a feature.
TARGETS -> Gapabilities -> Background Modes -> ON
and check [Audio, AirPlay, and Picture in Picture]
It worked for me.
You aren't alone - I'm encountering this as well. Really annoying. I've just filed a bug.
I'm running Xcode 8.1 with a device - it's not crashing but it's hitting a breakpoint that you can't find/edit/remove.
I go to Debug > Continue and it carries on as expected.
It's not crashing, something is throwing a signal to pause execution of the app. Without knowing how the simulated fetch happens I can only guess why - it might be part of the simulation or a side effect of the way the app handles it. Xcode used to support permanently disabling breaks on signals (SIGPIPE was always my bane), but that hasn't worked for several versions now.
I just had this issue, it had something to do with pulling data from my backend and a casting type.
If you aren't familiar with firebase just look at the last two lines of this. If you are, here is how I fixed it. My data coming in looked something like this
"Node" : {
"SubNode" : {
"-KoB8OMIO0PLiTs8fUkJ" : {
"ImageName" : "DSC05833-2.jpg",
"price" : 100,
},
"-KoB8Rh9PtSMaMUlaD91" : {
"ImageName" : "DSC05780-2.jpg",
"price" : 0,
},
And my code to pull.
ref.child("Node").child("SubNode").child(uniqueidID).observeSingleEvent(of: DataEventType.value, with: { (snapshot) in
if snapshot.childrenCount > 0
{
let jsonPhoto = snapshot.value as? [String: AnyObject]
let mageName = jsonPhoto?["ImageName"] as! String
photoObj.imagePrice = jsonPhoto?["price"] as! Double //error, Swift didn't catch, just froze my app
}
})
it worked if value was 100 -> Double, and then for some reason firebase was failing when I casted 0 -> Double
So I fixed how I casted it
I originallyy had this:
photoObj.imagePrice = jsonPhoto?["price"] as! Double // caused error
to..
photoObj.imagePrice = jsonPhoto?["price"] as? Double ?? 0.00 //fixed error