我想分发一个跨平台的应用程序,其可执行文件略有不同,具体取决于下载它的用户。这是通过在可执行文件中的某个地方放置一个占位符字符串来完成的,该文件在下载时替换为特定于用户的内容。下载时创建自定义的.dmg文件
必须做这些字符串替换的网络服务器是一台Linux机器。对于Windows,可执行文件不会在安装程序.exe中进行压缩,因此字符串替换很容易。
对于未压缩的Mac OS X .dmg文件,这也很容易。但是,用gzip或bzip2压缩的.dmg文件并不那么容易。例如,在后一种情况下,压缩的.dmg不是一个大的bzip2压缩磁盘映像,而是由几个不同的bzip2压缩部分(具有不同的块大小)和一个plist后缀组成。另外,使用bzip2解压缩和重新压缩不同的部分不会产生原始数据,所以我猜Apple对命令行工具使用了bzip2的一些不同参数。
有没有办法从Linux上的一个未压缩的(它没有hdiutil)生成一个压缩的.dmg?或者,也许另一个建议来创建自定义的应用程序,而不预生成它们?它应该在没有用户输入的情况下工作。
你问的是如何重命名一个存在于Linux中的.dmg文件中的文件? – Seth 2009-12-09 18:10:54
不,用.dmg中的某个文件内的某处替换空终止的字符串。 – Marten 2009-12-10 10:54:13
为什么它需要在.dmg文件中? – 2009-12-12 01:54:48