2013-04-10 104 views
1

我有一个使用ALAssets框架访问用户照片库的应用程序。我编写了一些代码来检测应用程序是否具有访问照片库的权限,如果没有,我会显示一条警告消息,告诉用户在设置中打开应用程序的位置服务。问题是,当我进入设置并打开或关闭应用程序的位置服务时,它会使应用程序崩溃(应用程序所在的视图控制器无关紧要,即使没有加载ALAssets的应用程序,它仍会崩溃) 。当位置服务设置为“开”时,应用程序崩溃

有谁知道这是为什么发生,我能做些什么来解决这个问题?

更新:这里是崩溃报告,在这条线在主:

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 

它说线程1:信号SIGKILL。

+0

相关代码在哪里?崩溃报告在哪里?我们不能神奇地知道发生了什么。 – Kerni 2013-04-10 15:36:35

+0

@kerni - 我更新了一些关于崩溃的信息。我不确定要发布什么代码,因为当我调整应用以外的设置(例如设置 - >隐私 - >照片)时发生崩溃。 – 2013-04-10 15:41:21

回答

4

你的应用正在被iOS杀死。这种情况总是会改变隐私设置,从而影响您的应用。

请参见:App killed by SIGKILL when changing privacy settings

另外:请求访问定位服务,将不授予您访问的照片库!这是一个单独的隐私设置。

+0

谢谢。我可能会发布这是另一个问题,但我注意到我使用的另一个应用程序会在用户点击打开它时自动重启,如果它检测到设置发生了变化。你知道如何做到这一点? – 2013-04-10 15:46:43

+0

您不能让应用退出并重新启动。 VOIP应用程序只有一个例外,可以在崩溃时自动重新启动。与其试图重新启动您的应用程序,您应该实施它,以便在无需重新启动的情况下更改设置即可生效。其他一切都不方便用户使用。无论如何,苹果指南不允许您自行退出应用程序。 – Kerni 2013-04-10 16:00:37

+0

对于这个特殊问题,很多人都认为这是最适合用户的方式。告诉他们更改隐私设置,以便应用程序能够访问照片库。没有看到任何其他方式。 BTW我提到的应用程序不是一个VoIP应用程序,但它似乎能够检测到设置更改和重新启动本身排序。 – 2013-04-10 16:05:50

相关问题