Electron打包mac OS安装包的配置和签名(干货)

2023-05-16

1. 先看配置(electron-vue)

打包使用的是electron-builder

package.json:

{
    ...
    "scripts": {
          "build:darwin": "node .electron-vue/build.js && electron-builder --mac", 
          ...
    },
    "build": {
        "productName": "xxxx",
        "artifactName": "xxxx-${os}-${version}.${ext}",
        "appId": "com.xxx.tm",
        "directories": {
          "output": "build"
        },
        "copyright": "Copyright © 2022 xxx.com All Rights Reserved",
        "files": [
          "dist/electron/**/*"
        ],
        "extraResources": [
          {
            "from": "resources/*",
            "to": "*"
          },
        ],
        "dmg": {
          "contents": [
            {
              "x": 410,
              "y": 150,
              "type": "link",
              "path": "/Applications"
            },
            {
              "x": 130,
              "y": 150,
              "type": "file"
            }
          ]
        },
        "mac": { 
          "category": "com.xxx.tm",
          "identity": "xxxxx",
          "hardenedRuntime": true,
          "gatekeeperAssess": false,
          "icon": "build/icons/icon.icns",
          "target": [
            "zip"
          ],
          "darkModeSupport": true
        },
    }
}

我这里是因为要在安装包中加入第三方程序所以就只打包成了zip。

2. 打包步骤

执行打包命令:

yarn run build:darwin 或 npm run build:darwin

结果:
在这里插入图片描述
打包后build目录下生成文件:
在这里插入图片描述

3. 签名公证

  1. 先将第三方程序进行签名
codesign -f -s "Developer ID Application: {Developer ID Application}" -v {第三方程序} --deep --options=runtime

在这里插入图片描述

  1. 公证zip包
xcrun altool --notarize-app --primary-bundle-id "{bundleId}" --username "{username}" --password "{password}" -t osx --file xxx.zip > notarize.txt
  1. 解压公证后的zip包
unzip xxx.zip
  1. 使用packages工具打包
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 将打包后的pkg文件进行签名

productsign --sign "Developer ID Installer: {Developer ID Installer}" xxxx.pkg xxx-sign.pkg

在这里插入图片描述

  1. 对pkg文件进行公证
xcrun altool --notarize-app --primary-bundle-id "{bundleId}" --username "{username}" --password "{password}" -t osx --file xxx-sign.pkg > notarize2.txt

4. mac签名常见错误

  1. Error: Unable to notarize app.
    Error: ERROR ITMS-90732: “The software asset has already been uploaded. The upload ID is 1ad0069d-977d-4324-bd64-a8e8cfc91a04” at SoftwareAssets/EnigmaSoftwareAsset (-18000)

    解决方法:
    cd /Users//Library/Caches/com.apple.amp.itmstransporter/UploadTokens/
    可以看到一个类似 xxxxx.local_itunesConnectUSERxxxxxx.itmsp.token文件
    在里面把内容都删除,保存

  2. 使用unzip解压文件失败
    Error:End-of-central-directory signature not found. Either this file is not
    a zipfile, or it constitutes one disk of a multi-part archive. In the
    latter case the central directory and zipfile comment will be found on
    the last disk(s) of this archive.

    解决方法:
    使用jar xvf filename.zip解压文件

  3. 执行xcrun altool --notarize-app时,报错You must first sign the relevant contracts online. (1048)错误

    解决方法:
    苹果更新了一些协议条款,需要开发者接受条款后才能继续使用服务。但公证脚本中对应的开发者账户,还没来得及接受条款。
    让开发者账户的拥有者登录一下 https://appstoreconnect.apple.com/agreements/# ,把所有条款都确认一遍。再执行公证流程就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Electron打包mac OS安装包的配置和签名(干货) 的相关文章

  • draw.io - 安装

    原文地址 xff1a draw io 安装 xff08 永久地址 xff0c 保存网址不迷路 x1f643 xff09 问题描述 我们没有采用自建 draw io 服务 xff0c 而是使用它的客户端 jgraph drawio deskt
  • Android网络优先级及更改

    Android版本 xff1a Android 4 4 4 涉及内容 xff1a 1 xff0c 网络优先级 xff1b 2 xff0c 网络切换 xff1b 3 xff0c 界面显示 解决问题 xff1a 1 xff0c 更改网络优先级
  • Java生产者、消费者模式的几种实现方式

    文章目录 方式一 xff1a BlockingQueue方式 最优方式 方式二 xff1a Synchronized 43 wait notifyAll方式方式三 xff1a ReentrantLock 43 Condition方式几种方式
  • 常识 让世界充满AI

    5 https sci hub cc 下载论文 4 问题 等于 机遇 问题抽象为可以解决执行的问题 xff0c 例如 xff1a 自动驾驶 xff0c 细化为特定场景下的自驾车 xff0c 如观光车 xff0c 公交车等 公司的核心是数据
  • iOS-NSLineBreakMode-lineBreakMode属性详解(UILabel省略号位置)

    apple文档 64 property nonatomic NSLineBreakMode lineBreakMode default is NSLineBreakByTruncatingTail used for single and m
  • spark机器学习笔记:(一)Spark Python初探

    声明 xff1a 版权所有 xff0c 转载请联系作者并注明出处 http blog csdn net u013719780 viewmode 61 contents 博主简介 xff1a 风雪夜归子 xff08 英文名 xff1a All
  • Jackson 解析 JSON 详细教程

    点赞再看 xff0c 动力无限 微信搜 程序猿阿朗 本文 Github com niumoo JavaNotes 和 未读代码博客 已经收录 xff0c 有很多知识点和系列文章 JSON 对于开发者并不陌生 xff0c 如今的 WEB 服务
  • 百度百科全站爬取教程

    百度百科全站 目前有16 330 473个词条 这里介绍一个基于scrapy的分布式百度百科爬虫 xff0c 能够全量爬取百度百科的词条 github地址 特性 百科类网站全站词条抓取 xff0c 包括百度百科 互动百科 wiki中英文站点
  • 贪心法

    贪心法 lt gt 贪心算法并不是从整体最优上加以考虑 xff0c 而是从局部最优考虑 xff0c 每次总是做出当前看起来最好的选择 xff0c 在某种意义上的局部最优选择 xff1b lt gt 最优子结构性质 xff1a lt gt 贪
  • shasum: command not found

    yum install perl Digest SHA
  • 记一次http请求报400问题

    引言 由于之前代码比较老 xff0c 都是采用http1 0方式请求 xff0c 于是采用了之前的代码进行实现 xff0c 结果之前测试没有问题 xff0c 后面投产了就报400错误了 xff0c 重新测试还是没有问题 最后通过接收方日志排
  • 数组下标排序

    前言 平时大家大多都是对数组进行各种方式的排序 xff0c 很少对数组的下标进行排序 xff0c 什么是对数组的下标进行排序 xff1f 即按数组值的大小对相应的数组下标进行排序 具体方法见以下正文 正文 解题的重点是如何保存值和下标的对应
  • SpringBoot项目无法接收到数据(Whitelabel Error Page)

    前言 在一次SpringBoot项目模块迁移的过程中 xff0c 新建的模块无法接收到前端的数据 xff0c 在地址栏输入对应的url后显示Whitelabel Error Page 正文 核对了url以及启动类上注解 64 SpringB
  • 解决android7.1系统出现的Consumer closed input channel or an error occurred. events=0x9错误

    自己实现的一个Socket聊天app xff0c 这个app是在17年的时候写的 xff08 当时也是随便写的 xff0c 没注意太多细节 xff09 xff0c 那个时候还是android4 4系统的手机 xff0c 然后写完在真机上调试
  • Java实现多线程轮流打印1-100的数字

    正文 首先打印1 100数字如果用一个单线程实现那么只要一个for循环即可 xff0c 那么如果要用两个线程打印出来呢 xff1f xff08 一个线程打印奇数 xff0c 一个线程打印偶数 xff09 于是大家会想到可以通过加锁实现 xf
  • 安卓手机利用DroidCam当电脑摄像头使用方法

    笔记本电脑有点老了 xff0c 摄像头好像坏了 xff0c 重装了一下午驱动都没弄好 xff0c 换了ubuntu系统也打不开摄像头 xff0c 然后就放弃了 xff0c 于是想到了能不能用android手机当笔记本电脑的摄像头 xff1f
  • Dell安装驱动程序出现的错误(DupAPI::Execute): *** Shell Execute Error. System error text

    在官网下的驱动却怎么也安装不上 xff0c 一直提示 The update installer operation is unsuccessful 然后打开日志文件查看 xfeff 04 10 19 10 12 11 Update Pack
  • 浮点数大小比较

    引言 在一次某公司的笔试题中出现了一题在一个无序的浮点数数组中找出相同的数 xff0c 那么在计算机中一般的整型的十进制数一般都是直接通过 61 61 来判断两个数是否相等的 xff0c 但是如果是浮点数还可以用这样的方式进行判断吗 xff
  • int的取值范围

    引言 在学C 43 43 或者Java的时候应该都会先了解各种基本数据类型的初值和它们的取值范围 xff0c 有些人可能会不太重视这块内容 xff0c 其实很重要 xff0c 很多大公司面试的过程中都会问到int的取值范围 xff0c 溢出
  • Intel汇编语言程序设计学习-第三章 汇编语言基础-上

    汇编语言基础 3 1 汇编语言的基本元素 有人说汇编难 xff0c 有人说汇编简单 xff0c 我个人不做评价 xff0c 下面是一个简单的实例 xff08 部分代码 xff09 xff1a main PROC mov eax 5 5送 E

随机推荐

  • 向量和矩阵范数

    参考 xff1a https en wikipedia org wiki Matrix norm Frobenius norm https blog csdn net Michael Corleone article details 752
  • ubuntu安装后分辨率只有一个选项

    ubuntu 16 04安装后分辨率只有一个选项 1024x768 xff0c 使用xrandr命令出现错误 xff1a xrandr Failed to get size of gamma for output default xff0c
  • android.hardware.Camera入坑之旅

    1 相机预览方向适配 可以参考谷歌官方适配方案 public static void setCameraDisplayOrientation Activity activity int cameraId android hardware C
  • MySQL深入的学习笔记

    MYSQL高级 MySql架构演变 这个很重要 软件的环境是如何从单应用算法极致优化的方向 到分布式的进化 这个时代 就会淘汰好多单体应用的coder 比如我自己 哈哈哈哈 1 0时代 单机单库 单应用 单数据库 快速 方便 好维护 并发量
  • Java变量的声明、初始化和作用域

    一 Java变量的声明 在 Java 程序设计中 xff0c 每个声明的变量都必须分配一个类型 声明一个变量时 xff0c 应该先声明变量的类型 xff0c 随后再声明变量的名字 下面演示了变量的声明方式 double salary int
  • 无线网卡无法启动(代码 10),怎么办?

    前言 无线网卡突然无法启动 xff0c 代码 10 xff0c 怎么办 xff1f 本文记述了作者遇到这个问题的经历和最终解决方法 xff0c 希望我的分享能给大家节约宝贵时间 一 我遇到的问题 先说明一下 xff1a 我用的是华硕的飞行堡
  • systemd内置变量

    替换符含义 b系统的 34 Boot ID 34 字符串 参见 random 4 手册 C缓存根目录 对于系统实例来说是 var cache xff1b 对于用户实例来说是 XDG CACHE HOME E配置根目录 对于系统实例来说是 e
  • IOS轻松实现仿网易新闻顶部滑动指示器(Scrollview实现)

    实现原理很简单 xff0c 就是利用了scrollview进行自定义 xff0c 对外部传入的scrollview滑动事件进行监听 xff0c 源码如下 xff1a xff08 1 xff09 h文件代码 ScrollViewIndicat
  • 【极客日常】Go语言string、int、float、rune、byte等数据类型的转换方法

    golang的数据类型转换是困惑新gopher的一大问题之一 相对于python xff0c golang的数据类型转换可要麻烦的多 xff0c 而且还不走寻常路地诞生了些新的方法跟名词 因此本文讲解golang常见数据类型string i
  • View的mParent变量初始化

    mParent变量实际上是PhoneWindow DecorView类型 xff0c 是所有应用窗口的根视图 xff0c 是FrameLayout的子类 View的requestLayout 函数也是调用了mParent requestLa
  • java:N的N次方

    题目描述 现给你一个正整数N xff0c 请问N N的最左边的数字是什么 xff1f 输入格式 输入包含多组测试数据 每组输入一个正整数N xff08 N lt 61 1000000 xff09 输出 对于每组输入 xff0c 输出N N的
  • CentOS升级curl

    1 安装repo rpm Uvh http www city fan org ftp contrib yum repo rhel6 x86 64 city fan org release 2 1 rhel6 noarch rpm 2 查看该
  • ACM:入口的选择------深度优先搜索

    入口的选择 Time Limit 1000MS Memory Limit 32768K Description Zeism玩的赛车游戏中 xff0c 有一种树形的赛道 树根表示赛道的终点 xff0c 任何一个叶子结点表示一个赛道的入口 xf
  • ACM:n!的位数 :斯特林公式

    n 的位数 Time Limit 2000MS Memory Limit 65536K Description 针对每个非负整数n xff0c 计算其n 的位数 Input 输入数据中含有一些整数n xff08 0 n xff1c 10 7
  • java 自定义封装jdbc dao类

    手动封装jdbc和dao层 xff0c 体会其中的优点与不足 注 xff1a 本次采用的mysql数据库记得添加数据库的驱动包 Dbhelper类 xff1a 对jdbc进行封装 xff0c 采用单例模式 xff0c 不用每次都去连接数据库
  • Mybatis 二级缓存

    mybatis的缓存分为一级缓存和二级缓存 xff0c 缓存是用来缓存部分经常性访问的数据 xff0c 而不必每一次都跑到数据库获取或运算 xff0c 目标是提高系统的性能 一级缓存 对于每一个sqlSession 其中有一个HashMap
  • virtualbox启动报错:Interface VirtualBox Host-Only Ethernet Adapter is not a Host-Only Adapter interface

    参考 xff1a 参考 xff1a windows下VirtualBox使用过程中遇到的一个错误 报错信息 xff1a Interface 39 VirtualBox Host Only Ethernet Adapter 39 is not
  • Tried to access visual service WindowManager from a non-visual Context

    适配Android12时遇到的一个问题 xff0c 做个记录 xff1a 尝试使用WindowManager做一些事情的时候 xff0c 我们一般会先获取WindowManager的实例 xff0c 即 xff1a WindowManage
  • Electron使用electron-builder打包windows时如何签名

    windows打包基本配置 xff1a span class token string 34 build 34 span span class token operator span span class token punctuation
  • Electron打包mac OS安装包的配置和签名(干货)

    1 先看配置 xff08 electron vue xff09 打包使用的是electron builder package json span class token punctuation span span class token o