uni-app HbuilerX 在macos上运行小程序模拟器拍照功能闪退

uni-app HbuilerX 在macos上运行小程序模拟器拍照功能闪退

示例代码:

takePhoto() {  
    const camera = wx.createCameraContext()  
    camera.takePhoto({  
        quality: 'high',  
        success: res => {  
            this.src = res.tempImagePath  
        }  
    })  
}  

//两种都试过

操作步骤:

  • 进入页面 打开拍照功能 (Hbuilder 编译启动的开发工具会闪退,直接启动微信开发工具不会)

预期结果:

  • 不闪退

实际结果:

  • 闪退

### bug描述:
使用HBuilder 打开微信小程序的拍照功能,不管是原生wx 还是用uni 调用 ,都闪退,直接启动微信开发工具 到拍照,不会闪退  

--------------------------------------报错信息如下--------------------------------------

Process: wechatdevtools [36067] Path: /Applications/wechatwebdevtools.app/Contents/MacOS/wechatdevtools Identifier: com.tencent.webplusdevtools Version: 80.0.3987.162 (3987.162) Code Type: X86-64 (Translated) Parent Process: ??? [1] Responsible: HBuilderX [21687] User ID: 501

Date/Time: 2021-03-29 16:59:00.905 +0800 OS Version: macOS 11.2 (20D64) Report Version: 12 Anonymous UUID: 31881E84-6711-A087-4B03-C38D02E2E5E8

Sleep/Wake UUID: BF9D2C61-D847-418D-B08E-83F27A6C1322

Time Awake Since Boot: 140000 seconds Time Since Wake: 3400 seconds

System Integrity Protection: enabled

Crashed Thread: 1 Dispatch queue: com.apple.root.default-qos

Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY

Termination Reason: Namespace TCC, Code 0x0 …


### 表格:开发环境信息

| 项目名称 | 开发环境 | 版本号 | 项目创建方式 |
|---------|----------|--------|--------------|
| 无      | HbuilderX | 3.1.4  | 无           |

更多关于uni-app HbuilerX 在macos上运行小程序模拟器拍照功能闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app HbuilerX 在macos上运行小程序模拟器拍照功能闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个典型的macOS权限问题。从崩溃日志中的Termination Reason: Namespace TCC, Code 0x0可以看出,问题出在TCC(Transparency, Consent, and Control)系统上。

macOS的TCC机制严格控制应用对摄像头、麦克风等敏感硬件的访问权限。当通过HBuilderX启动微信开发者工具时,系统将其视为HBuilderX的子进程,需要单独授权摄像头权限。

解决方案:

  1. 手动授权摄像头权限

    • 打开系统设置 → 隐私与安全性 → 相机
    • 在应用列表中勾选"微信开发者工具"
    • 如果列表中未显示,重启微信开发者工具后再次检查
  2. 完全重置权限(如果上述方法无效)

    • 打开终端,执行:
    sudo tccutil reset Camera com.tencent.webplusdevtools
回到顶部