我需要为Mac应用程序创建一个很好的安装程序。我希望它是一个磁盘映像(DMG),具有预定义的大小、布局和背景图像。
我需要在一个脚本中以编程方式做到这一点,将其集成到现有的构建系统中(实际上更多的是一个包系统,因为它只创建安装程序。构建是单独完成的)。
我已经用“hdiutil”完成了DMG的创建,我还没有发现的是如何制作图标布局和指定背景位图。
我需要为Mac应用程序创建一个很好的安装程序。我希望它是一个磁盘映像(DMG),具有预定义的大小、布局和背景图像。
我需要在一个脚本中以编程方式做到这一点,将其集成到现有的构建系统中(实际上更多的是一个包系统,因为它只创建安装程序。构建是单独完成的)。
我已经用“hdiutil”完成了DMG的创建,我还没有发现的是如何制作图标布局和指定背景位图。
当前回答
我使用dmgbuild。
安装:pip3 install dmgbuild 挂载您的卷 创建一个设置文件:
{
"title": "NAME",
"background": "YOUR_BACKGROUND.png",
"format": "UDZO",
"compression-level": 9,
"window": { "position": { "x": 100, "y": 100 },
"size": { "width": 640, "height": 300 } },
"contents": [
{ "x": 140, "y": 165, "type": "file", "path": "/Volumes/YOUR_VOLUME_NAME/YOUR_APP.app" },
{ "x": 480, "y": 165, "type": "link", "path": "/Applications" }
]
}
width值是背景的宽度。 高度值应该是窗口栏的背景高度+ 20。 在终端中:dmgbuild -s settings。. json "YOUR_VOLUME_NAME"输出
其他回答
我还需要使用命令行方法来做包装和dmg创建“在脚本中编程”。到目前为止,我找到的最好的答案是Adium项目的发布构建框架(见R1)。有一个自定义脚本(AdiumApplescriptRunner)可以让你避免OSX WindowsServer GUI交互。“osascript applescript。Scpt”方法要求您以构建器身份登录,并从命令行vt100会话运行DMG创建。
OSX的包管理系统相对于其他的Unixen来说还不太先进,可以轻松系统地完成这一任务。
R1: http://hg.adium.im/adium - 1.4 - / - file/00d944a3ef16/release
我刚刚编写了一个新的(友好的)命令行实用程序来完成这项工作。它不依赖于Finder/AppleScript,或任何(已弃用的)别名管理器api,并且易于配置和使用。
无论如何,任何感兴趣的人都可以在PyPi上找到它;文档可以在阅读文档中找到。
我使用dmgbuild。
安装:pip3 install dmgbuild 挂载您的卷 创建一个设置文件:
{
"title": "NAME",
"background": "YOUR_BACKGROUND.png",
"format": "UDZO",
"compression-level": 9,
"window": { "position": { "x": 100, "y": 100 },
"size": { "width": 640, "height": 300 } },
"contents": [
{ "x": 140, "y": 165, "type": "file", "path": "/Volumes/YOUR_VOLUME_NAME/YOUR_APP.app" },
{ "x": 480, "y": 165, "type": "link", "path": "/Applications" }
]
}
width值是背景的宽度。 高度值应该是窗口栏的背景高度+ 20。 在终端中:dmgbuild -s settings。. json "YOUR_VOLUME_NAME"输出
对于那些对这个话题感兴趣的人,我应该提到我是如何创建DMG的:
hdiutil create XXX.dmg -volname "YYY" -fs HFS+ -srcfolder "ZZZ"
在哪里
XXX == disk image file name (duh!)
YYY == window title displayed when DMG is opened
ZZZ == Path to a folder containing the files that will be copied into the DMG
我找到了这个很棒的mac应用程序来自动化这个过程- http://www.araelium.com/dmgcanvas/ 如果你正在为你的MAC应用程序创建DMG安装程序,你必须看看