Louis Legout
Louis Legout

Reputation: 211

How to terminate an app programmatically in iOS 12

I have a problem I put my iPhone 6 on iOS 12 beta 1 and that's so a method in my application to close when press on a popup button doesn't works on iOS 12 but works on iOS 11.4.1

That's the method that I used:

UIControl().sendAction(#selector(URLSessionTask.suspend), to: UIApplication.shared, for: nil)

In iOS 11 the app exit properly, in iOS 12 the app doesn't exit just do nothing when press on the popup button.

I know that this is Swift 4.2 and when I rode the news and modifications I haven't seen something like a link with a new method to close app properly.

I need that because I use that to close the app if the person doesn't accept Terms and conditions.

Upvotes: 16

Views: 33153

Answers (3)

JsW
JsW

Reputation: 1758

This would be the easiest way to terminate your App if you don‘t mind triggering a crash error.

// Create an array and "index out of range"
[0][1]

Upvotes: 4

ishwardgret
ishwardgret

Reputation: 1146

Try this code :

DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
    UIApplication.shared.perform(#selector(NSXPCConnection.suspend))
     DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
      exit(0)
     }
}

This will wait 1 sec and app will take 0.5 second to close. You can dim display before this code snippet.

Upvotes: 21

U. Benlice
U. Benlice

Reputation: 899

You can call exit method

exit(-1)

or you can use NSXPCConnection.suspend

UIControl().sendAction(#selector(NSXPCConnection.suspend),
                       to: UIApplication.shared, for: nil)

Besides Apple isn't recommending to force terminate your app. It doesn't matter how you do that.

Check this post.

Upvotes: 22

Related Questions