MacOS Mojave 摄像头和麦克风权限

在更新到MacOS Mojave后,用户遇到了CMIO相关的错误,导致摄像头和麦克风无法正常使用。通过使用otool进行调试,并更新iterm至最新版解决了'隐私问题'。此外,解决此问题还包括在Xcode的Info.plist文件中添加相机和麦克风的使用描述,以及在‘安全性与隐私’设置中手动启用权限,或者使用tccutil命令行工具重置权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MacOS Mojave

1. 遇到了如下问题。

CMIO_Unit_ScopeElement.h:200:SafeGetElement Throwing err: -67454

CMIOUnitFigBaseObjectImpl.c:246:CMIOUnitCreateFromDescription Invalid paramater

CMIO_Unit_Input_Device.cpp:244:GetPropertyInfo CMIOUInputFromProcs::GetPropertyInfo() failed for id 102, Error: -67456

CMIOHardware.cpp:339:CMIOObjectGetPropertyData the System is exiting

CMIO_DALA_System.cpp:264:GetPropertyData error 1970171760 (unop) getting property selector (inot) scope (glob) element 0

 

A:

0.1

I have encountered the same error after update to mac

### macOS 中 `osxSign` `osxNotarize` 的功能与使用 #### 一、`osxSign` 功能及用途 `osxSign` 是用于配置 macOS 应用程序签名的过程。应用程序签名是一个安全机制,通过它可以让操作系统验证应用的来源以及其完整性。如果一个应用程序被篡改过,则签名会失效,从而阻止潜在的安全威胁。 在 Electron Forge 或类似的工具中,`osxSign` 配置项允许开发者指定签名过程中的各种选项。这些选项通常包括但不限于权限声明(如访问摄像头麦克风)、硬编码路径排除以及其他特定于 Apple 开发者 ID 的设置[^1]。 以下是 `osxSign` 的基本配置示例: ```javascript module.exports = { packagerConfig: { osxSign: { identity: "Developer ID Application: Your Name (ABC123XYZ)", hardenedRuntime: true, entitlements: "entitlements.plist", "gatekeeper-assess": false } } }; ``` - **identity**: 指定开发者的证书名称。 - **hardenedRuntime**: 启用强化运行时环境以提高安全性。 - **entitlements**: 提供自定义权限文件路径。 - **gatekeeper-assess**: 控制 Gatekeeper 是否评估此包。 #### 二、`osxNotarize` 功能及用途 `osxNotarize` 则是用来处理苹果公证服务(Apple Notarization Service)。从 macOS Mojave 起,苹果引入了这项新要求——所有分发给用户的软件都应经过苹果服务器的审查并获得批准标记。这一步骤进一步增强了用户系统的安全性,因为它能检测恶意行为或已知漏洞的存在。 为了实现自动化提交至 notarytool 并获取状态更新等功能,在项目构建脚本里加入如下字段即可完成相应操作: ```javascript module.exports = { packagerConfig: { osxNotarize: { tool: 'notarytool', appleId: process.env.APPLE_ID, appleIdPassword: process.env.APPLE_PASSWORD, teamId: process.env.APPLE_TEAM_ID } } }; ``` - **tool**: 使用哪种工具来进行通知化,默认支持两种方式:"altool"(旧版)或者"notarytool"(新版推荐). - **appleId**, **appleIdPassword**, **teamId**: 这些变量分别代表您的 Apple Developer Program 登录邮箱地址及其密码还有团队唯一标识符. 值得注意的是,尽管技术上可能绕开官方认证流程来部署桌面级产品,但由于现代操作系统默认防护策略的影响,未经签署公证的应用可能会受到严格限制甚至完全无法启动[^2]. 综上所述,虽然两者均服务于保障最终产物合法合规的目的,但它们各自侧重点有所不同:前者侧重本地机器上的初步保护措施;后者则涉及远程云端审核环节。 ### 示例代码片段 下面是一份完整的配置样例,展示了如何同时启用 `osxSign` `osxNotarize`: ```javascript module.exports = { packagerConfig: { osxSign: { identity: "Developer ID Application: Example Company Ltd.", hardenedRuntime: true, entitlements: "build/entitlements.mac.plist" }, osxNotarize: { tool: 'notarytool', appleId: process.env.APPLE_ID, appleIdPassword: process.env.APPLE_PASSWORD, teamId: process.env.APPLE_TEAM_ID } } }; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值