启用iOS 8设置中的相机访问权限后应用程序崩溃

53

我正在开发一款iPhone应用,它使用相机扫描条形码和拍照。当我们没有相机访问权限并且用户启用相机访问权限时,应用程序会崩溃并重新打开。

你们能帮我解决这个问题吗?

提前感谢。


3
我也遇到了同样的问题。在iOS8中,当用户在应用程序的设置页面中切换相机访问按钮(无论是从启用->禁用还是禁用->启用),应用程序会崩溃。请注意,我的任务是翻译,不包括解释或提供额外信息。 - ken
1
我也遇到了同样的问题。 - Mohit
1
你找到了任何解决方案吗?我也遇到了同样的问题...我认为这与操作系统有关,而不是我们的编码。 - RJV Kumar
1
我也遇到了同样的问题。你找到了解决方案吗? - Pooja Shah
从iOS 10开始,应在应用程序的info.plist中设置NSCameraUsageDescription键。 键:NSCameraUsageDescription 值:解释为什么需要相机访问权限。 - Mithra Singam
显示剩余2条评论
2个回答

86
第一次访问相机时,操作系统将自动显示权限提示。无论用户允许还是拒绝该提示,您的应用程序将继续运行。如果用户在某个时刻更改了地址簿、日历、提醒、相机或照片权限,则iOS会SIGKILL该应用程序。它采取此操作以确保该应用程序不再拥有任何先前授权的数据。当用户从设置应用程序返回到第三方应用程序时,它将从头开始启动,并且现在具有被拒绝的授权状态。由于这种行为,我有两个建议:
  1. 检测权限被拒绝的情况,并呈现一些UI来解释用户需要切换“设置”应用程序权限。在iOS 8中,您可以使用[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]]将他们直接带到您的应用程序入口。
  2. 实现某种状态恢复,以便在应用程序终止并重新启动时,将用户返回到先前可见的视图/功能。
来源(需要开发者帐户): 链接

1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - jszumski
1
谢谢。评论可能不是永久的,所以请将该信息复制到您的答案中,以防丢失。 - Steve Mitcham
现在iOS 9+支持深度链接,用户可以直接从设置屏幕返回到您的应用程序,那么如何解决这个问题?从设置屏幕返回时(使用状态栏的后退按钮),应用程序会崩溃并且用户界面无响应... - cph2117
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - cph2117
1
注意:随着新的用户界面,链接到苹果讨论可能已经损坏。 - benc
显示剩余5条评论

0

您的建议是正确的。我会弹出一个警告视图,要求用户前往“设置”应用程序更改相机和联系人权限,如果他们之前拒绝了它们。对我来说问题在于您的第二个建议。我深入到注册流程中,并收集了注册信息,例如姓名、电子邮件、出生日期。然后我有一个“请求权限”的屏幕。当应用程序被杀死后重新启动时,我就没有这个注册信息了。我想,我可以在呈现警告视图之前保存注册信息(到手机上),然后在应用程序重新启动时检查是否有任何先前存储的注册信息。如果有,返回到请求权限的屏幕,然后删除已存储的注册信息。


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