2017-05-15 27 views
6

私のアプリのカメラ権限をUIAlertController経由で変更するようにユーザーに促す必要があります。アラートは、次のアクションがあります。アクセス許可を変更している間にアプリがバックグラウンドでクラッシュする -

alert.addAction(UIAlertAction(title: "Open Settings", style: .default, handler: { (action) -> Void in 

    guard let settingsUrl = URL(string: UIApplicationOpenSettingsURLString) else { 
     return 
    } 

    if UIApplication.shared.canOpenURL(settingsUrl) { 
     DispatchQueue.main.async(execute: { 
      UIApplication.shared.openURL(settingsUrl) 
     }) 
    } 
})) 

これはこれまでのところ、それは設定を開くように作業を行いますが、ユーザがカメラの権限を、Message from debugger: Terminated due to signal 9とバックグラウンドでアプリがクラッシュを変更した場合。

これでアプリを開くことができ、権限は正しいですが、最初からやり直す必要があります。誰もこれを解決する方法を知っていますか?

+0

これはデバイスで発生しますか? – KKRocks

+0

http://stackoverflow.com/questions/26115265/app-crashes-on-enabling-camera-access-from-settings-ios-8 –

+0

@KKRocksこれは実際のデバイスにあります。はい。 – James

答えて

10

あなたのアプリは新しいプライバシー設定でiOSによって強制的に再起動されることはありません。したがって、カメラのアクセス権を変更すると、プライバシーポリシーが変更されたことになります。そのため、デバッガにアタッチされている場合は再起動されます。

また、カメラのアクセス権だけでなく、アドレス帳、カレンダー、リマインダー、カメラ、写真のいずれかのアクセス権をユーザーが変更すると、iOSはアプリを通知します。 (iOSのデフォルト動作です)

+0

です。これはそうであるようです。情報をありがとう。 – James

+0

カメラ設定を開いたときにexit(0)を追加しました。正常に動作しています – HariKarthick

+0

Xcodeシステムに接続されたサイドロードを使用している場合: 1-アプリケーションが再起動します 2信号9がデバッガに記録されています 3 Xcodeが切断されています(デバイスがプロセスを再開したと仮定します) – benc

関連する問題