App killed by SIGKILL when changing privacy settings
My iOS app accesses the user's Photos with ALAssetsLibrary
. When I change the privacy settings for the app (Settings → Privacy → Photos), the app gets killed by system (SIGKILL
). Is this a bug?
I think it is a bug or at least poorly documented and unexpected behavior. But it does not crash it is just forced to restart. You will get a SIGKILL message but no Crash log.
If you are a registered apple developer you can check their forums for discussions about this issue
- https://devforums.apple.com/message/715855
- https://devforums.apple.com/message/714178
I don't know of any way how to prevent this behavior but feel free to file a bug report with apple. It is rumored they use bug duplicates as a way of measuring the bug severity. Maybe you can store your app state in order to restore it when it restarts.
This happens as well when using UIImagePickerController. The sequence goes like this:
You show the UIImagePickerController. The first time, the little alert asks the user for permission to use the photo library. Let's say the user says no.
All the user can do with the picker controller at this point is cancel, so let's presume that's what happens.
On some later occasion, you show the UIImagePickerController. It now contains a noncustomizable message saying that there is no access to the photo library, but that the user can enable access in Settings.
The user switches to Settings and enables access to the photo library for this app.
The app crashes in the background. It doesn't matter whether the user has cancelled the picker or left it showing.
I've filed a bug on this and I suggest you do the same, for your situation. Apple introduced a new privacy system in iOS 6 and clearly the kinks have not been worked out.
Search for the word "kill" within this PDF: http://adcdownload.apple.com/wwdc_2012/wwdc_2012_session_pdfs/session_710__privacy_support_in_ios_and_os_x.pdf
iOS kills apps when certain permissions change.
This info is hard to track down. It's not in any of the 'guides' (preferences programming guide, for example).
When you test your app using simulator.Changing the permissions of the app gives you a breakpoint.You can type "c" in the console to make the app continue to run and goes back to the original state.But in your real device,that is not the story.It just reboot the app.
Some times SIGKILL error work as a interruption error, it gives signal to iOS that you have to restart your app and on the same time we are managing app tasks and on that instance the way of sending interruption message is not handled by app.
In my case..... I don't allow the photos and camera access in the app and whenever I am allowing to access these features, I minimize the app and enables these settings. As I enabled these, iOS get an interruption and app receives this but can't handle and result our app terminates or closed.