关于授予对摄像机访问权限的BSMachError

时间:2016-09-27 15:32:23

标签: ios swift permissions camera alert

这对我来说是一个谜,我希望你能帮助我......

我已经制作了一个有QR扫描仪的应用程序,当我在iphone上全新安装时访问它时,随后会显示警报。问题是相机图像冻结,我无法扫描任何QR码...

一旦我再次从xcode运行应用程序,这个问题就消失了......

这是在控制台中打印出来的内容:

_BSMachError:port 13403; (os / kern)无效功能(0x14)“无法插入COPY_SEND”

请注意,我已将NSCameraUsageDescription添加到Info.plist。

感谢您的帮助!

更新 我已经尝试将NSPhotoLibraryUsageDescription和其他类似权限添加到Info.plist文件,以及将本地化本地开发区域从EN更改为US(在其他线程中读取解决方案)但仍然没有运气......

更新#2:

我昨天创建了一个新项目,重复使用相同的代码,“QR扫描程序视图”工作正常!

问题:可能是转换相关问题的某种形式吗?

该项目是在Swift 2.2中创建的,最近才转换为Swift 3的新语法。对于我能想到的问题,这是唯一真正的区别......

很高兴听到您对此事的看法!

3 个答案:

答案 0 :(得分:1)

由于缺少权限,可能会发生这种情况。 尝试在Info.plist键中添加以下内容 NSPhotoLibraryUsageDescription

答案 1 :(得分:0)

发现问题!

这个问题突然出现在我的新项目中,所以我开始调试了! 在运行应用程序时,我检查了Debug View Hierarchy(控制台菜单中的3D快照功能)......

A second instance of the UI on top of the first.

所以事实证明,有一个UI的第二个实例在另一个实例上运行 - 这就是我的相机视图似乎已经冻结的原因。

原因:我在我的应用中设置了一个滑出式菜单(来自教程:http://dennissuratna.com/slide-out-navigation-swift/),并添加了登录和注册视图 (从教程:https://www.youtube.com/watch?v=PKOswUE731c)到项目。 现在我发现UI的第二个实例是在登录到应用程序之后创建的,从而导致了问题。 删除与登录和注册视图的连接解决了这个问题,所以现在我只需找出在哪里进行正确的实现,以便按需工作。

注意: 每当我在iPhone上运行全新安装的应用程序时,仍会在控制台中打印出BSMachError消息。 "错误"当屏幕上显示授予摄像机访问权限的警报时,将在控制台中打印 该应用程序按预期运行,没有任何问题,所以我认为这是安全的 BSMachError-printout应被视为打印输出,而不是可能导致潜在崩溃的实际错误。

答案 2 :(得分:0)

Xcode 8.2.1,iOS 10.2.1

刚遇到同样的问题。请确保您为NSCameraUsageDescriptionNSPhotoLibraryUsageDescription输入了一条消息。

要轻松找到这些键,请从“编辑器”菜单中选择“显示原始键和值”。

希望这有帮助。

干杯。