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?
相关问题
- Core Data lightweight migration crashes after App
- How can I implement password recovery in an iPhone
- State preservation and restoration strategies with
- “Zero out” sensitive String data in Swift
- Get the NSRange for the visible text after scroll
相关文章
- 现在使用swift开发ios应用好还是swift?
- UITableView dragging distance with UIRefreshContro
- TCC __TCCAccessRequest_block_invoke
- Where does a host app handle NSExtensionContext#co
- Swift - hide pickerView after value selected
- How do you detect key up / key down events from a
- didBeginContact:(SKPhysicsContact *)contact not in
- Attempt to present UIAlertController on View Contr
OK my 1st time to write an answer. I hope I get it right :)
Are you accessing the Asset Library using the assetForURL:resultBlock:failureBlock: ?
If you are then, most likely you are not handling the failure block of the ALAssetLibrary.
You could do something like
So when your app doesn't have access to the photo library it will ask the user to do it.
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.
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.
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.
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
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.