You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JPackage打包Java应用MacOS摄像头权限问题求助

解决方案

1. 确认Info.plist的位置和正确性

  • 必须把Info.plist放在.app包的Contents目录下,路径为YourApp.app/Contents/Info.plist,别放在Java项目的其他地方。
  • 检查配置有没有拼写错误,NSCameraUsageDescription这个键名不能错,描述字符串也不能空。可以用PlistEdit Pro或者Xcode打开文件,确认XML格式没问题,没有语法错误。

2. 重置摄像头权限数据库

系统权限数据库可能出问题,执行下面的命令重置,之后重启电脑:

tccutil reset Camera

重启后再打开应用,会重新弹出权限请求,点允许就行。

3. 检查打包工具的配置(针对jpackage/AppBundler)

如果用jpackage或者AppBundler打包.app:

  • 用jpackage时,必须通过--mac-package-identifier指定唯一的包ID,这个ID要和Info.plist里的CFBundleIdentifier完全一致,不然系统没法把权限和应用关联起来。
  • 给.app签名,未签名的应用在MacOS上权限会受限。用开发者证书执行签名命令:
codesign --deep --force --sign "你的开发者证书名称" YourApp.app

4. 手动添加应用到摄像头权限列表

要是前面的方法都没用,直接手动加:

  • 打开「系统设置」→「隐私与安全性」→「摄像头」
  • 点列表下方的「+」,找到你的.app包添加进去
  • 重启应用再试

5. 排查启动脚本的权限上下文

有些打包工具会用辅助进程启动Java,导致权限丢失。可以修改.app/Contents/MacOS/下的可执行启动脚本,确保直接调用Java运行时,不要通过中间进程,避免干扰权限获取。

内容的提问来源于stack exchange,提问作者Nicolas Modrzyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 15:27:06