一、介绍

Windows下面开发好的应用程序要进行分发时有很多打包工具可供选择,如Inno Setup, InstallShield, NSIS, Advanced Installer, Qt Installer Framework等。甚至很多人还选择结合WinRar+Bat来创建应用程序安装包。Mac OSX下好像可供选择的工具不多,功能强大的工具大部分都需要进行购买。DMG是Mac OS X 上的一种压缩镜像文件格式,类似于Windows上常见的ISO文件,可以作为一种打包工具。直接让用户加载镜像即可安装,不失为一种较好的应用分发方式。很多开发商也都是这么做的:

 

此外,pkg是Mac OS X平台下另一种常见的安装包格式。类似于Windows平台的安装包程序。pkg包通常具备一系列安装流程,引导用户完成安装过程。制作pkg安装的工具有XCode自带的Package Maker(新版的XCode好像不包含了),Packages。这篇博客主要来讲讲Packages的使用过程。Packages是一款开源的安装包制作工具,能够指定文件的安装路径、定制安装流程、资源国际化、插件机制、执行安装脚本,能够满足大部分的安装场景。

二、使用

Packages有两种模式:一种称为Distribution,这种模式下的安装包可以包含多个组件,分别指定安装位置即可;而Raw Package则适用于只有一个安装组件(package)的情况下使用,是Distribution的一种简化形式。这里要解释下Packages中“组件(package)”的含义。其实在很多的安装包制作软件中,都存在“组件(package)”的概念。一个组件(package)就是一个具备特定安装属性的部分,是对需要安装的程序的一个逻辑划分。比如一个安装包中包含两部分,一部分需要安装到系统目录,一部分安装到用户目录。从逻辑上就可以划分为两个组件(package),分别为它们指定不同的安装属性。

为Packages工程选定目录,这里要注意的是,最好将“Project Directory”选定为安装文件所在的目录。否则容易出现安装包运行失败的现象。当然,"Project Name"可以随意决定。

新建项目完成后即进入到项目主页,默认看到的是Settings页面,可以设置安装包名(也即编译出来的pkg文件名),安装包输出位置,安装包格式等信息。

标准的安装过程分为:Introduction, Read Me(可选), License(可选), Destination Select, Installation Type, Installation, Summary七个步骤。右侧下面的加号是可以为每个步骤定制文本信息的。主要的每添加一条信息前面都有一个国旗标志,这是国际化的选项。Packages制作出来的安装包会针对系统语言自动显示对应的国际化资源。

这是安装步骤定制过程的最后一步。

开始定制安装组件(package)。新建项目后会有一个默认的和项目同名的组件(package),可设置组织标识符、版本号、执行动作和安装选项。其中最重要的是Payload页面。

Payload页面用于指定安装文件。Contents中会显示出系统所有的安装位置,如下选择/Library/QuickLook作为安装路径。

选中文件夹后即点击下面的加号添加需要安装的文件,这里作为示例添加了一个pdf文件。默认的安装目录是根目录,这里我们添加完文件之后,点击Settings中的Set按钮重置。这样,在QuickLook文件夹图标上就会出现一个准星图标,表示文件将安装到这个位置。

新建了几个组件(package)作为示例。

对于某些应用在安装时可能需要做一些额外的操作,这里可以指定执行脚本。分为安装前和安装后执行。

添加几个组件(package)之后,可以为每个package指定包名称和描述,这些信息在安装时会显示给用户看!

安装包编译生成之后即可开始运行测试了:

Read Me和License的内容都可以写到一个txt文本中,在安装步骤设置中指定好即可。

指定安装位置,并不是指组件安装位置,而是指安装到哪个物理磁盘中去。

哈,安装流程成功结束!到指定的安装位置查看,妥妥的安装文件都出现了!

三、小结

总的来说,Packages是一个非常好用的工具。其功能可以满足绝大部分的安装场景,操作简单,界面简洁。此外,Packages还支持插件哦,通过XCode中的Installer Plugins模板可创建各式各样的插件来增强Packages的功能,定制安装过程。作为开源社区的一份子,实在是一款良心之作!

Mac OS平台下应用程序安装包制作工具Packages的使用介绍的更多相关文章

  1. Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)

    上一篇:Mac OS平台下应用程序安装包制作工具Packages的使用介绍 补充说明 上一篇文章中介绍了如何使用Packages如何创建mac下的安装包.但是这样制作出来的安装包只能安装到系统的文件路 ...

  2. C#软件winform程序安装包制作及卸载程序制作

    使用vs2010 winform程序开发的软件的人比较多,程序的开发是为了在不同的人不同的机器使用,为了使不同的机器能使用该软件就需要在制作程序安装包,安装包里必须包含该软件运行所选的所有环境,下面就 ...

  3. [程序安装包制作] Advanced Installer 备忘

    原文:[程序安装包制作] Advanced Installer 备忘 Product Information - Product Details 这个重点是Product Version.讲这个之前, ...

  4. 安装包制作工具 SetupFactory使用1 详解

    2014-11-19 Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows ...

  5. 安装包制作工具 SetupFactory 详解

    Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容 ...

  6. 使用Setup Factory安装包制作工具制作安装包

    在我们开发完软件后,除了极个别案例我们把整个目录复制给客户用外,我们一般都需要做成安装包,方便整个软件的部署操作,以安装包的部署操作可能简单的是复制文件,也可能包括一些注册表.数据库等额外的操作,不过 ...

  7. NSIS程序安装包制作

    nsis下载地址:http://www.pc6.com/softview/SoftView_14342.html nsis使用: 启动NSIS程序主界面,选择"可视化脚本编辑器(VNISEd ...

  8. mac os x下的程序快速切换快捷键

    按下command + tab键正向切换程序 按下command + shift + tab键反向切换程序 按下command + tab键选择程序后,仍然按下command键不放,然后按下optio ...

  9. mac os x之解决npm安装包失败,或者nodejs工程缺少依赖

    在国内做开发,由于各种各样的原因,导致网络总是那么不好,对于我们前端开发者,在使用npm的时候很可能因为网络问题导致包安装失败,然后我们又匆匆启动项目,导致缺少依赖等各种问题,下面将会介绍一个淘宝的n ...

随机推荐

  1. .NET面试题系列[14] - LINQ to SQL与IQueryable

    .NET面试题系列目录 名言警句 "理解IQueryable的最简单方式就是,把它看作一个查询,在执行的时候,将会生成结果序列." - Jon Skeet LINQ to Obje ...

  2. MVC学习二:基础语法

    目录 一:重载方法的调用 二:数据的传递 三:生成控件 四:显示加载视图 五:强类型视图 六:@Response.Write() 和 @Html.Raw()区别 七:视图中字符串的输入 八:模板页 一 ...

  3. 玩转JavaScript OOP[2]——类的实现

    概述 当我们在谈论面向对象编程时,我们在谈论什么?我们首先谈论的是一些概念:对象.类.封装.继承.多态.对象和类是面向对象的基础,封装.继承和多态是面向对象编程的三大特性. JavaScript提供了 ...

  4. HTML和CSS经典布局1

    如下图: 需求: 1. 如图 2. 可以从body标签开始. <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xht ...

  5. 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》

    本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...

  6. Hadoop学习笔记—12.MapReduce中的常见算法

    一.MapReduce中有哪些常见算法 (1)经典之王:单词计数 这个是MapReduce的经典案例,经典的不能再经典了! (2)数据去重 "数据去重"主要是为了掌握和利用并行化思 ...

  7. iOS开发系列--Objective-C之类和对象

    概述 前面已经简单介绍过ObjC的基础知识,让大家对ObjC有个大致的印象,今天将重点解释ObjC面向对象的特性.ObjC相对于C语言多了面向对象特性,但是ObjC又没有其他面向对象语言那么多语法特性 ...

  8. java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码

    随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题 ...

  9. 完全使用一组 DSL 来操作 Grid 控件

    最近尝试了一下将 XtraGrid 的初始化工作封装成内部 DSL,例如一个普通的基础数据的增删改查操作的代码会像下面这样: public partial class UserForm : XtraF ...

  10. 《Entity Framework 6 Recipes》中文翻译系列 (22) -----第五章 加载实体和导航属性之延迟加载

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第五章 加载实体和导航属性 实体框架提供了非常棒的建模环境,它允许开发人员可视化地使 ...