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

MacOS Jenkins节点SSH执行jpackage签名Java应用失败求助

问题:SSH无GUI环境下jpackage签名失败

环境说明

  • 主Jenkins服务器部署在CentOS系统,Jenkins节点为运行Sonoma 14.2的macOS机器,主服务器通过无密码证书SSH控制该节点
  • 目标:使用OpenJDK 17.0.2的jpackage工具将Java应用打包为macOS应用并完成签名、公证,以获取麦克风权限、后台运行等能力
  • 团队密钥(My Team Key)已存入Keychain Access,本地终端执行签名打包命令可正常完成操作

本地可正常执行的jpackage命令

java/jdk-17.0.2.jdk/Contents/Home/bin/jpackage --verbose \
     --name AppName \
     --app-version 1.0.0 \
     --input ./app \
     --type app-image \
     --mac-package-identifier "com.identifier.appname" \
     --mac-package-name "App Name" \
     --main-jar myJar.jar \
     --runtime-image java/jdk-17.0.2.jdk \
     --mac-sign \
     --mac-signing-key-user-name "My Team Key" \
     --java-options "-Djava.net.preferIPv4Stack=true" \
     --java-options "-Dfile.encoding=UTF-8" \
     --mac-entitlements /var/root/sipsocket/entitlements.plist

SSH执行时的错误信息

Warning: unable to build chain to self-signed root for signer "Developer ID Application: ...."
    app/oneOfAppFileInSubfolder: errSecInternalComponent

已尝试但无效的方法

  • 将用户加入root组,使用sudo执行命令
  • 启用root用户并以root身份执行
  • 执行/usr/bin/codesign --remove-signature app/oneOfAppFileInSubfolder尝试移除现有签名
  • 尝试无GUI环境下的密钥分区配置命令,未生效
  • 在Jenkins任务中尝试带/不带-t选项的SSH命令,例如:ssh -i id_rsa -t user@serverIP 'zsh -c "cd ./Developer && sudo ./run"'

疑问

怀疑问题源于SSH执行时的无GUI环境,请问是否有解决方法,或是我遗漏了什么关键点?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:25:18