Mac OS 脚本生成dmg安装文件
本文将介绍通过脚本和appdmg来生成dmg安装文件的方法。文中例子的工程名为AutoLaunchMain。
最终生成的dmg安装效果如下图
工具准备
appdmg安装方式:命令行中输入
npm install -g appdmg
资源准备
工程根目录下创建目录dmgResources,里面的内容如下:
appdmg.json文件中包含安装界面的title,title左侧的图标,背景图片,下方图标的尺寸及位置。具体的参数定义可参考appdmg。
{"title": "AutoLaunchMain","icon-size": 128,"background": "background.png","icon": "icon.icns","contents": [{ "x": 140, "y": 200, "type": "file", "path": "AutoLaunchMain.app" },{ "x": 370, "y": 200, "type": "link", "path": "/Applications" }]
}
Icon.icns生成方法:
1.创建目录icon,创建命名为icons.iconset的文件夹,放入尺寸为1024*1024的应用图标,命名为pic.png。
2.进入到icon目录,执行下面脚本,会在icons.iconset中生成各种尺寸的图标。
sips -z 16 16 pic.png --out icons.iconset/icon_16x16.png
sips -z 32 32 pic.png --out icons.iconset/icon_16x16@2x.png
sips -z 32 32 pic.png --out icons.iconset/icon_32x32.png
sips -z 64 64 pic.png --out icons.iconset/icon_32x32@2x.png
sips -z 64 64 pic.png --out icons.iconset/icon_64x64.png
sips -z 128 128 pic.png --out icons.iconset/icon_64x64@2x.png
sips -z 128 128 pic.png --out icons.iconset/icon_128x128.png
sips -z 256 256 pic.png --out icons.iconset/icon_128x128@2x.png
sips -z 256 256 pic.png --out icons.iconset/icon_256x256.png
sips -z 512 512 pic.png --out icons.iconset/icon_256x256@2x.png
sips -z 512 512 pic.png --out icons.iconset/icon_512x512.png
sips -z 1024 1024 pic.png --out icons.iconset/icon_512x512@2x.png
3.在icon目录下执行下面的脚本,生成icns文件
iconutil -c icns icons.iconset -o Icon.icns
创建打包脚本
工程根目录下创建build.sh文件,文件的内容如下。主要功能是使用xcodebuild编译生成.app文件。
#!/bin/bashTOP_DIR=$(pwd)
echo "----TOP_DIR----"
echo $TOP_DIRSRC_DIR=${TOP_DIR}/AutoLaunchMain
PRODUCT_NAME=AutoLaunchMainCONFIGURATION=Release
BUILD_SCHEME=${PRODUCT_NAME}_dmg# 使用workspace管理的项目
#CLEAN_COMMAND="xcodebuild -workspace ${PRODUCT_NAME}.xcworkspace -scheme ${BUILD_SCHEME} -configuration ${CONFIGURATION} -sdk macosx"
#BUILD_COMMAND="xcodebuild -workspace ${PRODUCT_NAME}.xcworkspace -scheme ${BUILD_SCHEME} -configuration ${CONFIGURATION} -sdk macosx"# 通过xcodeproj管理的项目
CLEAN_COMMAND="xcodebuild -project ${PRODUCT_NAME}.xcodeproj -scheme ${BUILD_SCHEME} -configuration ${CONFIGURATION} -sdk macosx"
BUILD_COMMAND="xcodebuild -project ${PRODUCT_NAME}.xcodeproj -scheme ${BUILD_SCHEME} -configuration ${CONFIGURATION} -sdk macosx"$CLEAN_COMMAND clean
$BUILD_COMMANDecho "Build succeed"
新建打包Scheme
Demo工程的project为AutoLaunchMain,为它创建一个用来打包的Scheme,命名为AutoLaunchMain_dmg。
编辑新建的AutoLaunchMain_dmg Scheme。打开Build子菜单,选中Post-actions,添加一个Script Action。
在弹出的界面中输入下面脚本内容。代码的含义是在工程目录下创建一个用来生成dmg的目录result。将编译生成的.app文件复制到这个目录中,然后使用appdmg工具生成.dmg安装包。
echo ${SRCROOT}# 创建resul目录
RESULT_DIR=${SRCROOT}/result
if [ -e ${RESULT_DIR} ] ;then
rm -r ${RESULT_DIR}
fi
mkdir ${RESULT_DIR}echo "Copy app to result dir"# 拷贝资源到result目录
RESOURCE_DIR=${SRCROOT}/dmgResources
cp -R ${RESOURCE_DIR}/ ${RESULT_DIR}/# 拷贝app文件到result目录
PRODUCT_NAME=AutoLaunchMain
PRODUCT_APP=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
cp -R ${PRODUCT_APP} ${RESULT_DIR}/${PRODUCT_NAME}.appcd ${RESULT_DIR}
# package dmg
echo "package dmg..."
appdmg appdmg.json ${PRODUCT_NAME}.dmg# remove no used files
rm -rf *.app
find . -type f -not -name '*.dmg' | xargs rm -rf
将Provide build settings form设置为AutoLaunchMain,最终效果如下图
执行打包脚本
进入到工程目录下,执行脚本
sh build.sh
生成的AutoLaunchMain.dmg在工程目录/result下,双击后,看到文中第一张效果图。
Mac OS 脚本生成dmg安装文件相关推荐
- Qt在 Mac系统发布程序(widgets和quick2)生成dmg安装文件。
Qt提供了macdeployqt工具,借助于此,在OS X上发布Qt写的程序几乎是所有平台中最简单的, 在对应的Qt 安装目录下可以看到,我的电脑安装路径是:D/Qt/Qt5.4.1/5.4/clan ...
- Mac OS平台下如何创建dmg安装文件
本文将介绍通过脚本和appdmg来生成dmg安装文件的方法.文中例子的工程名为AutoLaunchMain. 最终生成的dmg安装效果如下图 1.工具准备 appdmg安装方式:命令行中输入 npm ...
- mac bochs 调试linux,Mac OS X下编译安装带debugger的bochs
bochs支持两种方式的debugger:(1)自带的debugger(internal debugger); (2)使用gdb-stub方式来debug. 但是这两种方式不兼容,编译的时候只能选其一 ...
- Mac OS X上下载安装和配置hadoop指南
Mac OS X上下载安装和配置hadoop指南 jdk下载 下载hadoop 添加Hadoop环境变量 修改Hadoop的配置文件 启动Hadoop jdk下载 [可以在这个网盘去下载] https ...
- Mac OS自带PHP安装redis扩展
安装redis 在mac OS中可以使用brew命令进行安装redis:mac OS使用brew命令安装软件 安装命令:brew install redis 因为我已经安装过了,这里就不在赘述. 安装 ...
- mac服务器文件夹权限设置密码,如何在Mac os优胜美地给文件和文件夹加密
如果你正在寻找另一种方式来保护在Mac OS X您的个人文件,请继续阅读,我将在这篇文章涵盖如何用密码保护个人文件,并使用iWork保护文件夹,微软Office的Automator,磁盘工具,终端. ...
- 在windows下制作mac os x的启动安装U盘
在windows下制作mac os x的启动安装U盘 制作教程:在windows下制作mac os x的启动安装U盘
- 怎么在mac下运行映像dmg_仅用Mac OS X系统映像文件(dmg)安装系统
可以在Mac OS X机器上进行无损分区,使用Mac OS X磁盘工具内的恢复功能,将映像文件恢复到其中一个区,并用此区启动,来进行安装. 可以用以下方法分区: 打开终端,输入: diskutil l ...
- 一帖搞定U盘系统制作及安装苹果mac os引导U盘安装windows7
坛友有问题可以直接微博问我:http://t.qq.com/juqiandai 之前在<全民普及 版主现身教你用苹果AIR装win7(桌面上pro air razer)>那篇帖子上用的外置 ...
最新文章
- 【VB】学生信息管理系统5——数据库代码
- php分布式redis实现session共享
- 如何使wordpress导航栏在新窗口打开
- 编程之美3.1 字符串移位包含问题
- 从排序数组中删除重复项
- 派单o2o全开源版 v11.6.0 全新UI版小程序模块
- php 封装JavaScript类
- Linux文件操作命令(二)
- Kafka是如何处理Netflix每天2万亿条消息的?
- Kettle处理300万条数据-问题整理
- 可道云kodexplorer隐藏免费版按钮及简单修改使用方法
- Dalvik字节码和Smali基本语法
- C++与OpenCV同时批量处理图像数据
- 剖析SPDK读写NVMe盘过程--从hello_world开始
- MultiValueMap是什么?怎么使用?
- Scrapy爬虫入门教程五 Selectors(选择器)
- MySQL 常用命令速查表:日常开发、求职面试必备良方!
- Open vSwitch + VLAN 组网
- 京东凡客模式遭质疑 电子商务或回归本质
- linux 两个子进程,父进程创建两个子进程,在收到中断信号后杀死两个子进程
热门文章
- 【UiBot实战教程】梦想云ERP系统数据获取和填写(一)
- 搜索专题(不定期更新)
- 匹配问题与匈牙利算法
- 华为正式发布鸿蒙回看,华为正式发布“鸿蒙”操作系统
- Wireshark网络抓包(九)——为什么我的 Wireshark 抓不到/抓不全 HTTP 数据包
- 我的新概念英语第四册
- 如何在Keil uVision5建立飞思卡尔K60开发板的工程
- Linux shell test命令用法详解
- 银行卡基础知识 - I类-II类-III类账户
- Docker快速搭建OpenProject项目管理协作平台