mac生成.dmg压缩镜像文件

mac生成.dmg压缩镜像文件

  • 背景
  • 准备
  • 内容步骤
    • 1,找一个文件夹
    • 2,制作application替身
        • 1,终端方式
        • 2,黄金右手方式
    • 3,.app文件放入文件夹
    • 4,制作.dmg压缩镜像文件
    • 5,安装.dmg
  • 总结

背景

  • 为绕开App Store审核成本,mac 端可以直接安装使用debug包的app,我们只需要把debug生成的.app包压缩发送给客户即可
  • 为了给客户最好的体验,以及给予最简单的安装方式,省去不必要的安装麻烦,把.app文件和mac的application安装程序文件替身一起打包成.dmg压缩镜像文件
  • 安装时,只需要打开.dmg压缩镜像文件,直接把.app文件拖拽至application替身文件即可完成安装
  • 下面我们就探索一下怎么打包成.dmg压缩文件镜像
  • 网上也有dropdmg工具,但作为macOS开发者,个人不推荐使用,
    • 1,不知道底层有没有尾巴
    • 2,有些需要付费(家里有矿的当我没说,有矿的看完这文章省下的开支要不要大赏给博主加一下#96动力油)

准备

  • 编译好的.app文件
  • 找一个文件夹(推荐在desktop上新建),把编译好的.app文件放入此文件夹

内容步骤

1,找一个文件夹

在这里插入图片描述

  • 我是在desktop桌面上建立的文件夹,大公司需要归档留存的,可以放到特定文件夹,然后用脚本去生成application替身和.dmg(本文的操作即是脚本生成.dmg的思路)

2,制作application替身

1,终端方式
  • 1,cd索引到要找的文件夹,比如准备阶段在桌面的文件,xxx替换为自己的用户文件:
cd /Users/xxx/desktop/CPET_Mac_0710
  • 2,然后,使用命令生成application替身,比如cd索引到CPET_Mac_0710文件后,执行以下命令
ln -s /Applications/   Applications
  • 3,在CPET_Mac_0710文件夹下就看到了application替身文件
    在这里插入图片描述
2,黄金右手方式
  • 找到存放应用程序的文件夹,直接右键制作替身,然后把制作好的替身,直接拖拽至准备阶段准备的文件夹下
    在这里插入图片描述

3,.app文件放入文件夹

  • 把之前准备好的.app程序可执行文件一起放到文件夹下:
    在这里插入图片描述

4,制作.dmg压缩镜像文件

  • 1,打开磁盘工具:
    在这里插入图片描述
  • 2,新建映像->选择基于文件夹新建映像
    在这里插入图片描述
  • 3,选择准备阶段,准备的文件夹,并确认
    在这里插入图片描述
  • 4,dmg压缩文件名称,位置,是否需要加密,映像格式,有相关需求的就对应选择,没有的就按默认就行
    在这里插入图片描述
  • 5,至此,一个普通的.dmg镜像就制作完成了

5,安装.dmg

  • 本来不想加怎么安装dmg,嘿,别说还真遇到了不会安装dmg的同学,注意,不是把.dmg压缩文件拖入到application应用程序文件中

  • 1,双击上述制作好的.dmg压缩镜像文件,生成一个类似windows系统中USB扩展硬件的文件(这是解压后的dmg文件)
    在这里插入图片描述

  • 2,点击进入上步骤的文件,把.app文件拖拽至application替身文件,喝口水的时间app就安装完成了
    在这里插入图片描述

  • 3,然后进入启动台,就能看到安装的app了

  • 4,最后,右键dmg解压后的文件,推出即可
    在这里插入图片描述

总结

  • 看完本文是不是觉得.dmg压缩镜像文件是不是很简单,恭喜你又学到了新知识,mac的神秘面纱 或者说,遮羞布又被你扯下一层。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/375096.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Go语言---并发编程之channel(双channel,单channel)以及应用实例(生产者消费者、打印机模型)

Channel goroutine 运行在相同的地址空间,因此访问共享内存必须做好同步。goroutine 通过通信来共享内存,而不是其享内存来通信。 引用类型 channel 是CSP 模式的具体实现,用于多个 goroutine 通讯。其内部实现了同步,确保并发安全。 chan…

FastAPI 学习之路(三十四)数据库多表操作

之前我们分享的是基于单个表的数据库表的操作,我们在设计数据库的时候也设计了跨表,我们可以看下数据库的设计 class User(Base):__tablename__ "users"id Column(Integer, primary_keyTrue, indexTrue)email Column(String(10), uniqueTr…

Python:Python基础知识(注释、命名、数据类型、运算符)

.注释 Python有两种注释方法:单行注释和多行注释。单行注释以#开头,多行注释以三个单引号 或三个双引号 """ 开头和结尾。 2.命名规则 命名规则: 大小写字母、数字、下划线和汉字等字符及组合; 注意事项: 大小写敏感、首…

ESP32FreeRTOS开发笔记:1.双核并行

ESP32 的 Arduino 框架内部集成了 FreeRTOS,允许开发者利用其多任务处理功能。在代码中,xTaskCreatePinnedToCore 函数是 FreeRTOS 提供的 API,用于创建任务并指定任务在哪个核心上运行。 FreeRTOS 是一个流行的实时操作系统内核,…

JavaSE学习笔记之内部类、枚举类和基本类型包装类

今天我们继续复习Java相关的知识,和大家分享有关内部类等方面的知识,希望大家喜欢。 目录​​​​​​​ 内部类 成员内部类 ​编辑 静态内部类 局部内部类 匿名内部类 枚举类 定义方法 基本类型包装类 自动装箱和拆箱 内部类 成员内部类 成…

《Windows API每日一练》9.1.5 自定义资源

自定义资源(Custom Resources)是在 Windows 程序中使用的一种资源类型,用于存储应用程序特定的数据、图像、音频、二进制文件等。通过自定义资源,开发者可以将应用程序所需的各种资源文件集中管理和存储,便于在程序中访…

从人工巡检到智能预警:视频AI智能监控技术在水库/河湖/水利防汛抗洪中的应用

一、背景需求分析 近日,我国多省市遭遇连日暴雨,导致水库、湖泊、河道等水域水位暴涨,城市内涝频发。随着夏季汛期的到来,降雨天气频繁,水利安全管理面临严峻挑战。为保障水库安全、预防和减少洪涝灾害,采…

文档去重(TF-IDF,MinHash, SimHash)

2个doc有些相似有些不相似,如何衡量这个相似度; 直接用Jaccard距离,计算量太大 TF-IDF: TF*IDF TF:该词在该文档中的出现次数, IDF:该词在所有文档中的多少个文档出现是DF,lg(N/(1DF)) MinHash …

windows上修改redis端口号

概况 redis是一个开源的内存数据结构存储系统,常用做数据库、缓存和消息代理。默认的端口号为6379 更改redis端口号步骤如下 先停止redis服务 redis-cli shutdowm 打开redis配置文件 在redis安装目录下,即redis.windows.conf文件。 port 6396 然后…

i18n、L10n、G11N 和 T9N 的含义

注:机翻,未校对。 Looking into localization for the first time can be terrifying, if only due to all of the abbreviations. But the meaning of i18n, L10n, G11N, and T9N, are all very easy to understand. 第一次研究本地化可能会很可怕&…

NI VST 毫米波测试仪器创新

目录 概览​从UHF至V频段的频率覆盖范围:54 GHz远程测量模块​PXIe-5842:VST架构的扩展54 GHz扩频PXIe-5842功能​​宽频覆盖范围​IF和毫米波测试端口可满足多频带需求​高达2 GHz瞬时带宽误差矢量幅度测量性能相位相干同步基于PXI平台集成多种仪器 互补…

Jmeter多用户登录操作实战

在使用Jmeter性能测试时,首先要解决的问题恐怕就会并发压测和多用登录的问题.今天就一篇文章讲清楚这两个问题的解决方案: 一.多并发压测如何配置线程? (1)同时并发:设置线程组、执行时间、循环次数,这种方式可以控制接口请求的…

01表操作/数类型定义

文章目录 表操作表的创建列的类型定义整数类型浮点类型和定点数类型日期和时间类型 表操作 表的创建 列的类型定义 整数类型 浮点类型和定点数类型 日期和时间类型

探索【Python面向对象】编程:新时代的高级编程范式详解

目录 1. 面向对象编程概念(OOP) 1.1 什么是类和对象? 1.2 类的定义 1.3 类和对象的关系 1.4 小李的理解 2. 抽象 2.1 抽象的概念 2.2 抽象类和方法 2.3 小李的理解 3. 类和实例 3.1 类的定义和实例化 3.2 类的属性和方法 3.3 小…

【Android】基于 LocationManager 原生实现定位打卡

目录 前言一、实现效果二、定位原理三、具体实现1. 获取权限2. 页面绘制3. 获取经纬度4. 方法调用5. 坐标转换6. 距离计算7. 完整代码 前言 最近公司有个新需求,想要用定位进行考勤打卡,在距离打卡地一定范围内才可以进行打卡。本文将借鉴 RxTool 的 Rx…

【安全设备】入侵检测

一、什么是入侵检测 入侵检测是一种网络安全技术,用于监测和识别对计算机系统或网络的恶意使用行为或未经授权的访问。入侵检测系统(IDS)是实现这一目标的技术手段,其主要目的是确保计算机系统的安全,通过及时发现并报…

蜂窝互联网接入:连接世界的无缝体验

通过Wi—Fi,人们可以方便地接入互联网,但无线局域网的覆盖范围通常只有10~100m。当我们携带笔记本电脑在外面四处移动时,并不是在所有地方都能找到可接入互联网的Wi—Fi热点,这时候蜂窝移动通信系统可以为我们提供广域…

Lingo学习(三)——工厂合并、运算符、内置函数

一、工厂合并 (一) 工厂合并——生产二维矩阵 【引入】 sets: factory /1..6/ : a; plant /1..8/ : d; Cooperation(factory,p lant) : c, x; endsets 以上程序可…

Ubuntu编译PX4固件

目录 前言 准备编译参考 前言 要想自己编译PX4固件需要交叉编译器,交叉编译器可以将 x86架构 平台上写好程序编译出来,而编译出来的可执行文件是能用到 arm架构 的平台上。 本次编译是以 px4 v1.13.2 为例。 我的配置如下: 虚拟机 Ubuntu 18…

按下快门前的算法——对焦

对焦算法可以分为测距式,相位式,反差式。 其中测距式是通过激光,(TOF,Time of Flight)等主动式地得知物距,然后对焦。更常用的是后两者。 反差式CDAF(Contrast Detection Auto Foc…