2013-04-10 3 views
11

ALAssets 프레임 워크를 사용하여 사용자 사진 라이브러리에 액세스하는 앱이 있습니다. 앱에 사진 라이브러리에 대한 액세스 권한이 있는지 여부를 감지하는 코드를 작성했습니다. 그렇지 않은 경우 설정에 앱 위치 서비스를 사용하도록 알리는 경고 메시지를 표시합니다.개인 정보 설정 변경을 감지하면 앱을 다시 시작합니다.

사용자가 개인 정보 설정을 수동으로 변경 한 다음 앱을 다시 열면 iOS가 앱을 강제로 SIGKILL과 충돌시킵니다.

다른 앱에서 처리하는 방식이 개인 정보 설정의 변경 사항을 감지하여 다음에 사용자가 열 때 다시 시작하도록하는 것으로 나타났습니다. 아무도 이것을 수행하는 방법을 알고 있습니까?

답변

12

무슨 일이 일어나고 있는지 오해합니다. 앱이 충돌하지 않습니다 (디버거로 앱을 실행중인 경우에도 표시 될 수 있음).

설정 앱으로 전환하고 앱이 백그라운드에서 일시 중지되고 개인 정보 설정을 변경하면 일시 중지 된 앱이 종료됩니다. 앱으로 다시 전환하면 다시 시작됩니다. 다른 이유로 앱이 죽는 것과 다를 바 없습니다.

이전 상태로 복원하여 처리하도록 앱을 코딩해야합니다. 당신이 이야기하는 다른 앱은 단순히 사용자를 이전 상태로 되돌려 보내는 것입니다. 많은 앱이이를 수행합니다. 사생활 침해로 인해 사망 한 것과 아무 관련이 없습니다. 앱은 어떤 이유로 든 살해 될 때 상태를 복원합니다.

+0

감사합니다. 내가 xcode에서 앱을 실행하고있을 때 말했듯이, 마치 얼어 붙은 것처럼 보였다. 하지만 휴대 전화에서 앱을 실행 한 다음 설정을 변경하면 다음에 앱이 멈추는 대신 앱이 다시 부팅됩니다. –

+0

이것은 시뮬레이터와 관련이 있습니까? 기기에서 Twitter 액세스를 변경하려고 시도했지만 내 Twitter 앱이 삭제되지 않았습니다. 평소처럼 배경에서 돌아왔다. –

+0

@CoDEFRo Xcode를 통해 디버깅 할 때 앱이 중단 된 후 중지 버튼을 클릭해야 앱이 제대로 다시 시작될 수 있습니다. – rmaddy

1

authorizationStatus class methodALAssetsLibrary 인 사진 라이브러리에 대한 액세스 권한이 있는지 확인할 수 있습니다. 앱이 열릴 때마다 호출되는 일부 메소드에서이 값을 확인하고 적절하게 UI를 업데이트해야합니다.

+0

그게 정확히 내가하고있는 일이며, 내가 그것을 발견했을 때 권한이 없으면 설정 앱에서 변경하라고 사용자에게 말합니다. 그들이 가서 변경하면 앱이 다운됩니다. –

+0

충돌하는 메소드의 코드를 게시 할 수 있습니까? – bdesham

+0

실제로 내 코드에서 내 앱을 충돌시키는 메서드는 아닙니다. 사용자가 앱 외부에서 설정을 변경하면 앱이 iOS에 의해 다운되고 있습니다. 설명해 드리겠습니다 : http://stackoverflow.com/questions/12652502/app-killed-by-sigkill-when-changing-privacy-settings –

관련 문제