首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在mac上签名时,电子应用程序崩溃了

当我在mac上签名时,电子应用程序崩溃了
EN

Stack Overflow用户
提问于 2019-12-22 03:18:54
回答 1查看 1.6K关注 0票数 3

我正试图用电子构建器封装一个电子应用程序,这是发布电子应用程序的最流行的库。我在一个Mac上,我有一个开发者帐户。当使用命令电子构建器builder zip运行构建过程时,电子构建器将自动在Mac的密钥链访问中搜索开发人员证书,并将其应用于应用程序。当我为mac构建应用程序时,它看起来很好,包括签名。与签名相关的终端日志是:

代码语言:javascript
复制
signing file=dist/mac/*appname*.app identityName=Developer ID Application: *MyDeveloperName*
        (*myDeveloperNumber*) identityHash=*someLongHashString* provisioningProfile=none

但是,当我试图打开这个应用程序时,它会立即崩溃,错误报告指出一个无效的签名代码:

代码语言:javascript
复制
Exception Type:        EXC_BAD_ACCESS (Code Signature Invalid)
Exception Codes:       0x0000000000000032, 0x000039e9b3542040
Exception Note:        EXC_CORPSE_NOTIFY
Termination Reason:    Namespace CODESIGNING, Code 0x2

然而,开发人员帐户是有效的。如果我在构建它时没有签名(将标识设置为null),它将执行得很好。

代码语言:javascript
复制
// package.json
"build": {
  "appId": "com.example.appname"
  "mac": {
    "identity": null
  }
}

当我构建并尝试执行任何电子应用程序(包括电子入门页面上的HelloWorld应用程序)时,我都会得到相同的错误结果,所以它是通用的。

电子制造商有一个样板,他们推荐使用Webpacker,我不需要我的应用程序。如果我只是下载样板,并构建一个应用程序,它确实签署它,它确实工作,没有错误。因此,这证实了我的开发者ID没有问题,我宁愿不使用他们的样板,因为它增加了另一层复杂性,我不知道如何使我已经构建的应用程序与他们的样板集成。我只希望我的应用程序签名在一个普通的应用程序上工作。我是不是错过了一些基本步骤?是什么导致了这个问题?

EN

回答 1

Stack Overflow用户

发布于 2019-12-23 19:49:22

我把这个搞定了。在签署之前,我必须启用苹果的硬运行时(https://developer.apple.com/documentation/security/hardened_runtime_entitlements)。经过强化的运行时为应用程序增加了一些限制,使用户能够更好地抵御潜在的攻击,如代码注入、动态链接库(DLL)劫持和进程内存空间篡改。

本质上,遵循这个博客中的步骤,电子构建器也链接到https://kilianvalkhof.com/2019/electron/notarizing-your-electron-application/。这在我试过几次(在发布这个问题之前)时,出于某种原因并没有奏效,但现在起了作用。这些说明是为了公证应用程序,但如果你只想签署它,只需遵循前两个步骤。最重要的是,如果不添加经过改进的运行时,应用程序启动时的签名就会失败。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59441383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档