macOS分发app打包+签名+公证+添加票据+生成dmg文件

article/2025/9/18 22:38:32

1.打包

网上有很多使用命令行的打包的方式大家可自行查找,以下是使用Xcode进行打包.

首先配置证书要配置Developer ID Application证书然后使用的是Xcode进行打包:Product->Archive

这种打包方式的好处是省去了签名的过程,但是用网上其他人的命令查看签名时候还是未成功,暂时先忽略.

2.公正

上一步省去了签名过程,直接进入公正步骤,必须zip、pkg等文件才能进行公正,直接公正dmg是不支持的

(1)压缩成zip文件

cd到存储app文件目录执行:ditto -c -k --keepParent xxx.app xx.zip //注意看清楚app的文件名称在更改后实际名称跟文件名称是不一致的,需要右键查看简介

(2)上传公证

xcrun altool --notarize-app --primary-bundle-id "com.xxx.xxx" --username "开发者账户" --password "xxxx密码" --asc-provider "xxxxprovider" --file "xxx.zip"
 

执行命令后就是等待显示以下内容说明成功:

No errors uploading 'xxx.zip'.
RequestUUID = xxxxxxxxxRequestUUID 保存住

等两分钟后可以使用RequestUUID 查看公证结果,执行以下命令:

xcrun altool --notarization-info xxxxxxxxxRequestUUID --username "开发者账户" --password "xxxx密码"

显示以下内容说明成功:

 如果有错误可以查看LogFileURL后面的地址有错误描述或者到开发者账户的邮件查看

com.xxx.xxx替换成打包程序时的Bundle Identifier
xxxx密码:替换成app管理后台的专用密码
关于密码
注意,并非ApplelD账号密码。需要到https://appleid.apple.com重生
成,如下图所示:)


xxxxprovider:证书的名称

 3.添加票据
其他博客有的是直接给zip文件添加票据,但是我总是失败,之后尝试对app添加票据后显示成功.

(1)删除老的app文件,将公证后的zip解压

(2)执行以下命令:

xcrun stapler staple -v xxxx.app
显示一堆内容最后The staple and validate action worked! 表示成功

(3)查看app是否公正成功:

spctl -a -v xxxxx.app 
显示以下内容导表成功
xxxxx.app: accepted
source=Notarized Developer ID

4.生成dmg

(1)需要的文件:

(1)icon.icns  这个是icon生成的,可以让开发生成给你,也可以自己用工具生成,

(2) mg_bg@2x.png   这是背景图,可以参看下微信的dmg文件里面的图片

(3) appdmg.json  这个是生成dmg的json处理文件,其中需要关注的一点是如何把不需要的隐藏文件拿掉,详情参考文末“生成dmg时隐藏文件的处理”

先看看appdmg.json的内容

{

     "title": "标题必须含有英文否则背景图不显示,没有深入研究为什么",
      "icon-size": 48,
      "background": "dmg_bg@2x.png",
       "icon": "Icon.icns",
       "window": {
                         "position": { "x": 200, "y": 400 },
                          "size": { "width": 600, "height": 360 }
                      },
         "contents": [
                           { "x": 200, "y": 180, "type": "file", "path": "LBCast.app" },
                           { "x": 400, "y": 180, "type": "link", "path": "/Applications" },
                           { "x": 500, "y": 500, "type": "position", "path": "/.VolumeIcon.icns" },
                           { "x": 500, "y": 500, "type": "position", "path": "/.background" }
                       ]

}

json的文件属性都可以更改,主要是匹配背景图

(4)xxx.app

将四个文件同时放到一个目录

进入到文件夹执行:

appdmg appdmg.json xxxx.dmg //没有appdmg 需要安装 npm install -g appdmg

至此所有的操作过程都完成!

最主要的是证书问题基本都是在这个步骤出错可以谨慎一点

 

 


http://chatgpt.dhexx.cn/article/9a0RPFPS.shtml

相关文章

CTF实战之Stapler

CTF实战之Stapler Penetrating Methodology: 0x01 网络扫描(Nmap, netdiscover) nmap -sP 192.168.153.0/24 通过筛选找到靶机地址 扫描靶机端口 nmap -sT -T4 -sV -p 1-65535 192.168.153.154通过端口扫描发现靶机开了很多端口 我们一个一个来 …

Jenkins 远程命令执行漏洞 (CVE-2018-1000861)复现

文章目录 漏洞描述(介绍、成因)漏洞危害适用场景实验环境漏洞复现过程1、 开启docker环境2、通过dnslog检测漏洞是否存在3、监听端口4、利用exp获取反弹shell 修复建议扩展知识(链接、文章) 漏洞描述(介绍、成因&#…

VulnHub-STAPLER: 1-靶机渗透学习

靶机地址:https://www.vulnhub.com/entry/stapler-1,150/ 靶机难度:中级(CTF) 靶机描述:Stapler is reported to be one of several vulnerable systems that are supposed to assist penetration testers with challe…

【甄选靶场】Vulnhub百个项目渗透——项目十:stapler-1(文件上传,多方式提权)

Vulnhub百个项目渗透 Vulnhub百个项目渗透——项目十:stapler-1(文件上传,多方式提权) 靶场环境 🔥系列专栏:Vulnhub百个项目渗透 🎉欢迎关注🔎点赞👍收藏⭐️留言&…

vulnhub靶机:Stapler

文章目录 0x000x01 靶机安装0x02 靶机发现0x03 端口探测0x04 信息收集端口21:FTP服务端口22:SSH服务端口80:HTTP服务端口139:SMB服务端口666:未知服务端口3306:MySQL服务端口12380:HTTP服务 0x0…

实战打靶集锦-006-Stapler

**写在前面:**记录博主的一次打靶经历。 目录 1. 主机发现2. 端口发现3. 服务枚举4. 服务探查4.1 FTP探查4.1.1 匿名登录4.1.2 Elly用户4.1.3 John用户4.1.4 EXP搜索 4.2 dnsmasq探查4.2.1 基础信息获取4.2.2 EXP搜索 4.3 WEB应用探查4.3.1 浏览器访问4.3.2 目录扫描…

Stapler: 1

Stapler: 1 项目地址:https://www.vulnhub.com/entry/stapler-1,150/ 文章目录 Stapler: 1一、信息收集:1. 靶机地址获取:2. 收集端口服务信息: 二、信息利用1. 针对12380端口进行web目录枚举:1.1 访问:ph…

No.10-VulnHub-Stapler: 1-Walkthrough渗透学习

** VulnHub-Stapler: 1-Walkthrough ** 靶机地址:https://www.vulnhub.com/entry/stapler-1,150/ 靶机难度:中级(CTF) 靶机发布日期:2016年6月8日 靶机描述:Stapler is reported to be one of several v…

Stapler:1 靶机渗透测试-Vulnhub(STAPLER: 1)

Stapler:1(STAPLER: 1)靶机渗透-Vulnhub 一、IP端口探测二、端口信息收集1.ftp匿名登录2.OpenSSH漏洞查询3.80端口4.666端口5.SMB枚举6.12380端口 二、边界突破1.video插件文件包含2.修改wordpress数据库管理员密码3.上传webshell 三、提权总…

Stapler#攻略

写在前面:前人栽树后人乘凉,谢谢网上各位大佬的解题思路作为参考学习; 一、实验准备 1、实验地址: Stapler: 1 ~ VulnHub 2、下载之后,本地解压,用VMware运行该虚拟机; ​ 3、设置stapler与攻击…

Stapler-1靶场详细教学(7种漏洞利用+5种提权)

目录 前言 简介 信息收集 0x00 主机发现 0x01 端口探测 0x02 信息收集-1 0x03 信息收集-2 0x04 漏洞利用-1 0x05 信息收集-3 0x06 漏洞利用-2 0x07 漏洞利用-3 0x08漏洞利用-4 0x09 漏洞利用-5 0x10 漏洞利用-6 0x11 漏洞利用-7 提权 0x12 提权-1-内核提权 0…

CSDN开通博客

今天想写博客,却发现没有开通博客页面没有发现验证码, 后来点击验证码输入框,验证码才出来。真是失策,我觉得还是在刷新页面的时候就显示验证码就好了。

【JavaScript 逆向】数美滑块逆向分析

声明 本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除! 案例目标 验证码:aHR0cHM6Ly93d3cuaXNodW1laS5jb20vbmV3L3Byb2R1Y3QvdHcvY29kZQ 以上均做了脱敏处理,Base64 编码及解…

个人总结 - JS逆向解析

目前加密的方式总结有下面几点: 对称加密(加密解密密钥相同):DES、DES3、AES 非对称加密(分公钥私钥):RSA 信息摘要算法/签名算法:MD5、HMAC、SHA 前端实际使用中MD5、AES、RSA&a…

【JavaScript 逆向】抖店滑块逆向分析

声明 本文章中所有内容仅供学习交流,相关链接做了脱敏处理,若有侵权,请联系我立即删除! 案例目标 接口: aHR0cHM6Ly93d3cuZG91eWluLmNvbS9hd2VtZS92MS93ZWIvdXNlci9wcm9maWxlL290aGVyLw 以上均做了脱敏处理&#…

MAC 逆向APK

准备逆向工具 apkTool 、apkTool.jar 、dex2Jar稳定版 (不要下载最新的2.0或者2.1 最新的dex2jar 运行会报错)、JUI 查看代码结构 (1) apkTool 、apkTool.jar:Apktool - How to Install 上面这段话是&#xff1…

java逆向_Java逆向入门(一)

Java是一门"半编译半解释"型语言.通过使用jdk提供的javac编译器可以将Java源码编译为Java虚拟机(Java Virtual Machine, JVM)可读的字节码(bytecode),即*.class文件. 学习字节码可以使你更好的理解Java虚拟机的行为,甚至对学习其它基于Java虚拟机的语言(如:Scala,Clo…

Android逆向基础——APK的格式

Android 安装包常以apk(android Package)、xapk为后缀,本质是一个压缩包,包内存存放运行着应用程序安装必要的所有资源、代码。可直接修改后缀为zip解包。 解包后目录大致如下: assets 资源文件,通过cont…

JS逆向笔记-记录某测试论坛的js逆向练习

这个网站应该是专门练习的,因为有个地方说不太通,在此只能算是练习,记录下,方便以后进行查阅。 首先访问主页: 他会设置一个cookie值,并且会把加密的salt 带出来。还有个叫lt的东西也会用html的形式传出来。…

Matlab逆向归纳法,逆向归纳法

逆向归纳法(backward induction)是求解动态博弈均衡的方法 [编辑] 什么是逆向归纳法 逆向归纳法(backward induction)是求解动态博弈均衡的方法。所谓动态博弈是指博弈参与人的行动存在着先后次序,并且后行动的参与人能够观察到前面的行动。逆向归纳法在逻辑上是严密…