Electron-forge 和 osx 签名应用程序导致“二进制文件签名不正确”。

2023-12-11

我使用以下“功能”开发了一个电子应用程序:

  • Base : 电子锻造:开始、制作和发布
  • 电子open-url功能[方案:xx-note]
  • node-keytar:获取和设置密码
  • 无框应用程序: 透明窗户
  • 自动更新 with Nucleus: 正在开发 W10
  • 登录后开始

如果我不签署它,我可以毫无问题地运行该应用程序并构建它,但为了使自动更新工作,我绝对需要对其进行签名。 (这对我的客户来说更好)。

不幸的是,当我签署它并尝试在 Big Sur 上运行它时,我收到以下消息:

来自取景器:

您没有权限打开应用程序“XX”

请联系您的计算机或网络管理员寻求帮助。

从航站楼出发:

The application cannot be opened for an unexpected reason,
error=Error Domain=NSOSStatusErrorDomain Code=-10826 "kLSNoLaunchPermissionErr: User doesn't have permission to launch the app (managed networks)" 
UserInfo={_LSFunction=_LSLaunchWithRunningboard, _LSLine=2539, NSUnderlyingError=0x7f98fe4166d0 {Error Domain=RBSRequestErrorDomain Code=5 "Launch failed." 
UserInfo={NSLocalizedFailureReason=Launch failed., NSUnderlyingError=0x7f98fe418060 {Error Domain=NSPOSIXErrorDomain Code=153 "Unknown error: 153" 
UserInfo={NSLocalizedDescription=Launchd job spawn failed with error: 153}}}}}

而且,在这两种情况下,我都会在Console/system.log :

May  3 11:00:32 XX com.apple.xpc.launchd[1] (application.ai.XX.note-taking.39302547.39303101[25454]): removing service since it exited with consistent failure - OS_REASON_CODESIGNING | When validating /Users/XX/Documents/XX/mr/XX-desktop/out/XX-darwin-x64/XX.app/Contents/MacOS/XX_Taking-Note:
      Code has restricted entitlements, but the validation of its code signature failed.
    Unsatisfied Entitlements: 
May  3 11:00:32 XX com.apple.xpc.launchd[1] (application.ai.XX.note-taking.39302547.39303101[25454]): Binary is improperly signed.

卡塔利娜:

我的同事从 Catalina 启动它并收到此错误消息

System Integrity Protection: enabled
Crashed Thread:        0
Exception Type:        EXC_CRASH (Code Signature Invalid)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY
Termination Reason:    Namespace CODESIGNING, Code 0x1

我的应用程序是如何签名的?

Using [electron-osx-sign][8] & [electron-notarize][8] 使用伪造配置:

packagerConfig:  {
    appBundleId: 'ai.XX.note-taking',
    executableName: BUILD_NAME, //XX
    name: APP_NAME, //XX
    icon: iconPath,
    overwrite: true,
    asar: true,

    extendInfo: './info.extends.plist',

    protocols: {
      name: 'XX-note',
      schemes: ['XX-note'],
    },

    osxSign: {
      identity: OSX_CREDENTIALS.SIGN_ID, // Developer ID Application: TeamName (MYTEAMID)
      'hardened-runtime': true,
      entitlements: 'entitlements.plist',
      'entitlements-inherit': 'entitlements.plist',
      'entitlements-loginhelper': 'login.entitlements.plist',
      'signature-flags': 'library',
      // https://github.com/electron/electron-notarize/issues/54
      'gatekeeper-assess': false,
      verbose: true,
    },
    osxNotarize: {
      // appBundleId: 'ai.XX.note-taking', // (TESTED WITH & WITHOUT)
      appleId: OSX_CREDENTIALS.ID, // [email protected]"
      appleIdPassword: OSX_CREDENTIALS.PASSWORD, // app password
      // ascProvider: 'MYTEAMID', // (TESTED WITH & WITHOUT)
    },

协同设计--验证--verbose XX.app

out/XX-darwin-x64/XX.app: valid on disk
out/XX-darwin-x64/XX.app: satisfies its Designated Requirement

My .plist

登录.entitlements.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
  </dict>
</plist>

信息扩展.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>XX-note</string>
        </array>
      </dict>
    </array>
    <key>NSDocumentsFolderUsageDescription</key>
    <true />
    <key>ElectronTeamID</key>
    <string>MYTEAMID</string>
    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSAllowsArbitraryLoads</key>
      <false/>
      <key>NSAllowsLocalNetworking</key>
      <true/>
    </dict>
  </dict>
</plist>

权利.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
  </dict>
</plist>

我真的希望你能帮助我,我真的尽力给你尽可能多的帮助,而且已经三天多了,我到处找都没有解决我的问题。

已经尝试过了

  • developer.apple.com/forums/thread/666611?page=5
  • github.com/ElmarJ/Waterlooplein3D/issues/86
  • bestofreactjs.com/repo/infinitered-reactotron-react-development-tools
  • stackoverflow.com/questions/64842819/cant-run-app-because-of-permission-in-big-sur
  • github.com/upx/upx/issues/424
  • github.com/Squirrel/Squirrel.Mac/issues/204
  • github.com/Hardocs/desktop-app/issues/56
  • Discuss.apple.com/thread/526166
  • ... 和更多

我使用本教程解决了这个问题:https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/

还有这个问题https://github.com/electron-userland/electron-builder/issues/3940

我的最终配置是:

    osxSign: {
      identity: 'Developer ID Application: MyTeam (TEAMID)',
      'hardened-runtime': true,
      entitlements: 'mac/entitlements.plist',
      'entitlements-inherit': 'mac/entitlements.plist',
      'signature-flags': 'library',
      // https://github.com/electron/electron-notarize/issues/54
      'gatekeeper-assess': false,
      verbose: true,
    },

    osxNotarize: {
      appleId: 'myemail',
      appleIdPassword: 'mypassword',
    },

And mac/entitlements.plist is :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.disable-library-validation</key>
    <true/>
  </dict>
</plist>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Electron-forge 和 osx 签名应用程序导致“二进制文件签名不正确”。 的相关文章

  • 如何使用核心动画来动画 NSTextField 的背景颜色?

    我正在尝试使用核心动画来突出显示无效的文本字段 my field animator setBackgroundColor NSColor yellowColor 更新字段背景颜色 但不会以动画方式显示更改 正确更新字段位置等属性 我假设这是
  • gitk 无法在 macOS 10.14 (Mojave) 上启动

    当我尝试在 macOS Mojave 10 14 4 上运行 gitk 时 出现以下错误 Error in startup script file System Library ScriptingDefinitions CocoaStand
  • 安装 Numpy 和 Scipy - 找不到系统 python 2.6

    我正在尝试为本学期的数据分析课程安装 numpy 和 scipy 我正在尝试从 sourceforge net 上的软件包安装它 但当我按照向导操作时 我无法选择我的 HD 有一条消息说 numpy 1 5 1 需要 System Pyth
  • 找不到“jpeglib.h”文件

    我正在尝试用 C 读取 jpg 图像 我下载了libjpg http www ijg org 正如此链接所建议的那样https www opengl org wiki Image Libraries https www opengl org
  • JavaFX 应用程序隐藏 OSX 停靠图标

    我需要隐藏 javafx 应用程序的停靠图标 在普通的 java 应用程序中 这可以通过以下属性来实现 System setProperty apple awt UIElement true 然而 这似乎不适用于 JavaFX Thanks
  • 如何使用 java 应用程序查看 Mac 操作系统中安装的软件?

    我正在编写一个程序 列出我的 mac 中安装的所有软件 我在哪里可以找到这些信息 谢谢 您可以致电lsregister dump获取在 Launch Services 中注册的所有应用程序的列表 不过 输出需要进行解析 每个记录都有一个pa
  • Mac:将按键事件发送到后台窗口

    我在用石英活动服务 https developer apple com library mac documentation Carbon Reference QuartzEventServicesRef Reference referenc
  • Zend Framework 2相册教程发生404错误请求的URL无法通过路由MAMP OSX匹配

    刚刚也在 IRC 频道 ZFTalk 上发布了这个 希望我能得到一些关于 ZF2 ZF2 专辑教程 使用 MAMP 的 OSX 的帮助 骨架框架 主页正在运行 问题 完成第 8 5 节 列出专辑 后 您用一些代码填充 module Albu
  • 使用 NSURLSession 进行单元测试

    我想为使用共享的方法编写单元测试NSURLSession 特别是 NSURLSessionDataTask下载数据 基本上 我希望目标方法能够接收模拟响应 数据 而不需要互联网连接 模拟这些组件的不太不显眼的方式是什么 我正在考虑填充NSU
  • Electron:jQuery 未定义

    问题 在使用 Electron 进行开发时 当您尝试使用任何需要 jQuery 的 JS 插件时 即使您使用脚本标签加载到正确的路径 该插件也找不到 jQuery 例如 p Click me p jQuery should be loade
  • 如何在最新的 OS X 上安装多个版本的 Python 并并行使用它们?

    我想在 OS X 10 11 上使用多个 Python 版本运行测试 包括 Python 2 6 Python 2 7 默认 已解决 Python 3 4 Python 3 5 通过brew 安装 运行良好 Conda Python 3 5
  • AppleScript:如何获取文件夹中没有隐藏文件的文件?

    我其实有两个问题 当我尝试获取文件夹中的文件时 如何排除 DS STORE Icon 等隐藏文件 我试过了 没有隐形人 但似乎不起作用 如果已经存在 如何将我的 var the new folder 设置为现有文件夹 感谢您的回答 My c
  • 为什么我的多线程 C 程序在 macOS 上无法运行,但在 Linux 上却完全正常?

    我用 C 语言编写了一个多线程程序 使用 pthreads 来解决 N 皇后问题 它使用生产者消费者编程模型 一位生产者创建所有可能的组合 一位消费者评估该组合是否有效 我使用一个共享缓冲区 一次可以保存一个组合 一旦我有 2 个以上的消费
  • std::istringstream >> 使奇怪的行为加倍

    下面的代码打印0在 mac osx 上使用 clang 其他地方都会打印5 clang https ideone com mVgpzS gcc https ideone com oZ0hy6 include
  • 在 MacOS 上重新启动终端而不关闭

    如何在不关闭窗口的情况下重新启动当前的 MacOS 终端会话 在Linux中我使用exec bash但在这种环境下它不起作用 我对 bash profile 提示 别名等 我想在不关闭它并再次打开的情况下查看 只需输入命令 exec bas
  • 如何在 mac os 10.6 上安装brew或homebrew

    我已经尝试过多次了 谁能告诉我具体的详细步骤吗 我的Mac操作系统是10 6 8 它抱怨一些丢失的包裹 使用它在 Mac OSX 10 6 8 上安装 ruby e curl fsSL https raw githubusercontent
  • CGContextDrawImage 绘制非常模糊的大图像

    我正在尝试制作一个可以使用 CGContextDrawImage 绘制大图像 例如 2048 x 1537 图像的一部分的对象 它工作得很好 只是它非常模糊 我正在使用一个 drawingController 它覆盖了drawLayer i
  • 从内存加载动态库

    是否可以从内存而不是从 mac gcc 上的文件系统加载库 在 Windows 中 我使用 MemoryModule 但它显然不跨平台兼容 首先 要做到这一点 我建议您阅读OS X ABI 动态加载器参考 https developer a
  • NSTokenField:标记的不同颜色

    我在我的 xib 中创建了一个 NSTokenField 我想在 tokenField 中显示不同颜色的令牌 含义 一些标记将是蓝色的 其余的将是红色的 根据其内容 那可能吗 以下代码对我不起作用 我希望有人能帮助我 id tokenFie
  • 将 jQuery 集成到电子应用程序中

    我正在尝试将 jquery 功能添加到用 Electron 编写的桌面应用程序中 使用电子快速启动存储库 我将下载的 jquery 文件添加到main html像这样的文件 or so 然后在index js我正在文件中添加代码create

随机推荐

  • 对一维数据使用什么聚类算法? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有一个数组中的数字列表 每个元素的索引是 X 值是 Y 我如何对这些数据进行分
  • Adobe Air - 检查互联网连接

    我正在使用 Adob e Flash CS 5 构建 Air 应用程序 我需要检查互联网连接是否可用 我遇到了这个错误 1172 找不到air net 定义 1046 未找到类型或不是编译时常量 URLMonitor 这是我的代码 impo
  • MySQL:复合索引全文+btree?

    我想要一个查询 它对一个字段进行全文搜索 然后对不同的字段进行排序 想象一下搜索一些文本文档并按发布日期排序 该表大约有 17M 行 它们在日期上或多或少均匀分布 这将在 Web 应用程序请求 响应周期中使用 因此查询最多必须在 200 毫
  • 如何连接到部署到 OpenShift 的 IBM MQ?

    我有一个带有 IBM MQ 的容器 Docker 镜像ibmcom mq 9 2 2 0 r1 暴露两个端口 9443 管理 1414 应用程序 OpenShift 中所有必需的设置均已完成 Pod 服务 路由 有两条路线 每个港口一条 h
  • 什么是整数类型?

    我看到了 golang core 并发现了这个 func make t Type size IntegerType Type IntegerType 和 Type 是什么意思 可以是C 吗 您的函数声明来自builtin包裹 builtin
  • 如何在 Gradle/IntelliJ 中添加测试资源根

    使用 IntelliJ 14 和 Gradle 2 2 中的 idea 插件生成 IntelliJ 项目 我可以通过以下方式添加新的测试源根用于集成测试 idea module testSourceDirs file src integra
  • 如何从 iphone corebluetooth api 列出已配对的蓝牙设备

    我正在尝试列出配对的蓝牙设备 我知道我可以使用retrieveConnectedPeripherals 获取已连接设备的列表 所以我的问题是如何以编程方式从 iphone SDK 获取配对设备 提前感谢大家 Regards Bhaban 你
  • php simplexml_load_file 带有破折号 ( - )

    嗨 我正在努力从 php 中的 xml 文件获取数据 xml 文件在这里 http musicbrainz org ws 2 artist 8bfac288 ccc5 448d 9573 c33ea2aa5c30 inc release g
  • 在 ObjectAnimationUsingKeyFrames 中使用 TemplateBinding

    我尝试设置鼠标悬停在控件上时的背景颜色 我尝试通过视觉状态管理器来做到这一点 我能够运行以下代码
  • form.valid() 不应显示验证文本?

    With Jquery validate required fields are showing popup validation on fileds like below pic 我喜欢这个并且工作得很好 但我检查 form valid
  • 从服务器导入 LESS

    在我的 ASP NET MVC 应用程序中 我有一个返回 LESS 变量的操作 我想将这些变量导入到我的主 LESS 文件中 由于 DotLess 只会导入扩展名为 less 或 css 的文件 因此推荐的方法是什么 我发现最简单的解决方案
  • 如何使用泛型实现类型安全?

    我有课 public class ReportItem
  • pyqt5中的连接功能不起作用

    我最近从pyside to pyqt5有一个问题 我在网上查了一下 显然 这已经发生在使用过的人身上pyqt4并搬到pyqt5 然而 它并没有真正帮助 我尝试添加pyqtSignal after Qobject但它仍然不起作用 请帮忙 这些
  • 创建性能计数器时 Azure 模拟器出错

    我正在尝试测量 Azure 项目上的处理器负载 在运行模拟器时 我在模拟器控制台中收到如下错误 MonAgentHost Error MA EVENT 2012 10 10T12 15 06 982Z MonAgentHost Error
  • 阿拉伯语的布局方向不是根据区域设置确定的(Mac 和 Linux)

    有没有人设法从用户 的语言设置中推断出正确的布局方向 从左到右和从右到左 我在将应用程序本地化为阿拉伯语 沙特阿拉伯 语言环境时遇到问题 检测当前区域设置以及加载和安装适当的 QTranslators 都可以正常工作 文本在 Linux 上
  • 这是php中的快速进程strpos()/stripos()或preg_match()

    我只是想知道 php 中的 strpos stripos 或 preg match 函数中哪一个更快 I found 这个博客针对您的问题运行了一些睾丸 结果是 strpos 比 preg match 快 3 16 倍 stripos 比
  • 按顺序收集值,每个值包含一个地图

    当迭代代码中由主题函数返回的返回映射时 键未按顺序出现 如何使键按顺序排列 对地图进行排序 以便键按顺序且值相对应 Here is the code The Go 博客 Go 地图的实际应用有一个很好的解释 当使用范围循环迭代映射时 迭代顺
  • Postgresql 中子字符串的区别

    最近几天我在查看 PostgreSQL 手册 我注意到substring 在那里解释为substring string FROM int FOR int 我通常只使用substring string int int 因为我是从 MySQL
  • python selenium 鼠标滚轮点击

    我有一个问题 是否可以在 python selenium 中模拟鼠标滚轮单击 当您单击链接时 浏览器中会打开一个新选项卡 或类似的东西 我使用的网站是基于 JavaScript 的 所以我看不到物理链接 您需要执行 JavaScript 代
  • Electron-forge 和 osx 签名应用程序导致“二进制文件签名不正确”。

    我使用以下 功能 开发了一个电子应用程序 Base 电子锻造 开始 制作和发布 电子open url功能 方案 xx note node keytar 获取和设置密码 无框应用程序 透明窗户 自动更新 with Nucleus 正在开发 W