我正在使用Cocoa开发一个应用程序。我需要创建一个DMG文件,以像Adium一样安装我的应用程序(提供漂亮的UI将应用程序文件拖到应用程序文件夹中)。是否有相应的工具可供使用?
我正在使用Cocoa开发一个应用程序。我需要创建一个DMG文件,以像Adium一样安装我的应用程序(提供漂亮的UI将应用程序文件拖到应用程序文件夹中)。是否有相应的工具可供使用?
hdiutil internet-enable -yes "MyDiskImage.dmg"
这应该适用于任何DMG文件。如果你希望用户看到漂亮的背景,你可能不想这么做。但是,对于简单的负载,这是一个不错的选择。(当然,有些人可能更喜欢为这种部署创建ZIP文件。)
我发现手动创建DMG可能会很麻烦。实际上,你可以在Xcode项目中自动化创建一个简单的DMG。只需创建一个Shell脚本目标(项目→新建目标...),并在脚本中使用hdiutil
命令。命令可能类似于这样(替换正确的名称和目录):
hdiutil create -fs HFS+ -volname "MyApp 1.0" -srcfolder \
"/directory/with/contents/to/package/" "~/Desktop/MyApp-1.0.dmg"`
如果你不怕在终端使用cp
命令,那么把需要包含在磁盘映像中的所有内容放入单个目录中就很容易了。
如果你想看一个例子,我自己在 CHDataStructures.framework中使用了这种方法。 如果你查看代码并在Xcode中打开,部署目标中的第二个脚本将创建DMG。
磁盘工具 (位于应用程序\实用工具中)
前往 文件
> 新建
> 从文件夹创建磁盘映像
,然后选择要创建映像的文件夹。生成的 .dmg 文件将复制您用来制作映像的文件夹,包括图标位置。
Dr. Nic为您提供了一个很好的Ruby宝石,可以为您完成大部分工作,您只需要提供Xcode项目和一些图形即可。链接在此:
http://drnicwilliams.com/2009/02/03/choctop-packaging-and-deployment-of-cocoa-applications/
这是一个很棒的软件包,可以处理其他情况下令人头疼的任务...
-- Evan
由于现有的答案不够,我创建了一个可读写的DMG,其中包含我想要的布局——背景图片、大小、应用程序图标的快捷方式和一个空文件夹代表我的应用程序。我编写了一个简单的bash
脚本来复制这个DMG,挂载它,将我的应用程序复制到空文件夹中,卸载DMG,然后将其转换为只读。
但是DMG Canvas可以为您完成整个过程,并提供一个命令行工具,您可以从Xcode构建中自动化此过程,因此我真的建议您使用DMG Canvas而不是我的解决方案。
pkg-dmg \
--verbosity 2 \
--volname "MegaFinder" \
--source MegaFinder.app \
--sourcefile \
--target MegaFinder.dmg \
--license Licence.txt \
--icon MegaFinderVolumenIcon.icns \
--copy MegaFinderCustomizedDS_Store:.DS_Store \
--mkdir .background \
--copy MegaFinderBackgroundImage.jpg:.background/backgroundImage.jpg \
--symlink /Applications:Applications \
--attribute V:.background \
2>&1 > /dev/null
你可以使用DropDMG来设置一个带有背景图片、指向应用程序文件夹的符号链接、图标位置等布局。然后,当你需要制作.dmg文件时,你只需将应用程序拖到DropDMG上(或通过AppleScript或dropdmg命令行工具进行脚本编写),就可以一步完成磁盘映像的构建。
MacBreak Dev做了一个不错的小型屏幕录制,介绍如何使用Automator工作流创建DMG文件。这使事情变得非常容易、非常快捷,而且您可以为DMG设置自定义背景。您可以在http://www.pixelcorps.tv/mbkd_010中查看它。