iOS因为允许权限而终止,信号代码为9。

10

我正在制作一个iOS应用程序,是个新手。 在这个应用程序中,我想访问用户的联系人。 一切都很顺利,工作正常。 但是我遇到了一个奇妙的行为,这是我自成为安卓开发者以来从未见过的。

在iOS中,要访问用户联系人,我使用Contacts框架。 我认为它相对来说比iOS中的其他任何资源更容易和快速。 然而,我没有能够完全利用它。 让我告诉你我做了什么,我遇到了什么问题。

我所做的我在ViewController上请求权限,用户会弹出对话框询问是否允许访问联系人。 如果用户允许权限,一切都很顺利,但是如果用户不允许权限,问题就来了。

访问用户联系人更加必要,因为我的应用程序的整个工作和基本业务概念都建立在用户联系人之上。 现在,为了解决这个问题,当用户不允许权限时,我会显示另一个对话框,告诉他必须允许权限才能继续使用应用程序。 到目前为止还好。

现在,我将用户带到设置界面,他可以允许权限或简单地返回。 现在看两种情况

情况1:当用户进入设置屏幕并返回而不允许权限时

当我带用户进入设置界面,但是他返回到我的应用程序而没有允许权限时,我会尝试在每种情况下再次显示相同的对话框以启用权限。这很好。我的意思是为了测试目的,我重复相同的步骤多次,也就是说,我不允许自己的联系人权限,它会带我到设置屏幕,从设置屏幕返回到我的应用程序,然后我能够再次看到将我带到设置屏幕的相同对话框。这没问题 情况2: 当用户被带到设置屏幕并允许权限时: 当用户允许权限时,我在日志中得到一条消息:"来自调试器的消息:因信号9终止"。当我回到我的应用程序时,它重新开始了。看起来我的应用程序在后台重新打开或崩溃了。

重要提示: 对于此,我检查了我的内存或后台正在执行的任何任务,但是后台没有任何活动。我崩溃前的内存大小为54.78 mb。我认为这不值得担心。
有人知道发生了什么吗?
2个回答

18

很好,但这会让用户感到烦恼,因为如果他允许权限并想回到应用程序,那么如何将他带回同一视图控制器? - A.s.ALI
@SharartiKAKI,您可以恢复应用程序的状态。请按照以下教程学习如何实现此操作-https://www.raywenderlich.com/1395-state-restoration-tutorial-getting-started - Aakash
为了更清晰明了,如果在开发过程中在设备上进行测试时出现崩溃,会导致与调试器的断开连接并且不会重新启动应用程序,但是在正式发布时,应用程序将会重新启动。 - Thomas Clowes

5

这是预期行为。当用户更改通讯录、相机、麦克风和照片(以及可能的其他权限)的权限时,iOS将终止应用程序。


在一个地方,我正在获取位置权限,但是在点击返回按钮后,我回到了同一个视图控制器。如果这是默认行为,那么如何返回到同一个视图控制器,否则会让用户感到烦恼。 - A.s.ALI
1
实施应用跟踪透明度框架后,切换“允许跟踪”现在也会关闭应用程序。 - Richard Andrew Lee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接