问题标签 [packagemaker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
265 浏览

macos - 如何使用 PackageMaker 更新现有的框架包?

我开发了一个框架,在其中更改了库 API。我更改了已安装的版本字母以指示 API 更改。但是,旧版本会被Installer删除。

如何构建一个将旧 API 版本留在新库旁边的包?

例如,MyFramework v1.0 实现了版本 A 的接口并安装在/Library/Frameworks/MyFramework/Versions/A。v2.0 实现了 B 版接口。它安装在/Library/Frameworks/MyFramework/Versions/B中。安装程序应用程序不断删除目录/Library/Frameworks/MyFramework/ A 。我想保留该目录,以便我拥有:

0 投票
1 回答
180 浏览

macos - 如何在 PackageScript 中为同一产品的不同配置创建包?

我们从 Ant 脚本中调用 Mac PackageMaker 来构建我们的产品安装包。
我想传递一个参数“productConfiguration”,它将指导包包含或排除某些组件,例如,为了创建一个较小的试用版包。
实现这一目标的正确方法是什么?

笔记:

  1. 在 Windows 中,我们使用 InstallShield 的功能、条件、发布标志、配置标志。PackageMaker中有类似的概念吗?)

  2. pkmkdoc 规范 1.12 的文档在哪里?

  3. 我能想到的唯一方法是使用模板在 install.pmdoc 智能文件夹中生成 [一些] xml 文件。但这对我来说看起来很不雅。

0 投票
2 回答
654 浏览

macos - OSX packageMaker 需要在安装过程中关闭所有浏览器

我正在开发一个要打包和分发的浏览器插件。我想知道如何在安装过程中提示用户关闭所有浏览器。我想使用 PackageMaker 来创建安装程序。

有更好的选择吗?

谢谢你

0 投票
1 回答
4721 浏览

macos - 使用 postflight 脚本构建分发安装程序包 (.pkg) 而无需身份验证

我正在使用 PackageMaker 的新域功能(为 Mac OS 10.5 引入)来定位用户主目录。我在 PackageMaker.app 中创建了一个 .pmdoc 文件,并且在添加我的安装后脚本之前一切正常。然后,突然间,我的包需要 root 授权,而以前不需要。packagemaker --doc mypackage.pmdoc --info Dist/PackageInfo我尝试使用提供明确指定的调整过的 PackageInfo 文件从命令行构建auth="none",但这不起作用。当我通过使用 提取输出包来调查输出包时xar -xf package.pkg,身份验证似乎是在为自己生成package.pkg/Distribution的 XML 文件中指定的。packagemaker

由于对 GUI 的失望,我已切换到仅packagemaker在命令行上使用。但是,现在我的包不显示我的用户界面文件(尽管它们包含在 .pkg 存档中),并且仍然需要 root 身份验证。生成文件中的违规行Distribution是(注意 auth="Root"):

这就是我的运行方式packagemaker

这是布局Dist

如何配置我的包,使其运行安装后脚本而不要求 root 身份验证?我是否缺少某种方法来通过命令行同时指定 PackageInfo 文件和 Distribution install-script XML 文件?

0 投票
1 回答
4524 浏览

macos - 如何使用包管理器获取安装在 Mac OS X 中的应用程序的位置?

我正在尝试使用 Package Maker 创建一个安装程序,它将一个插件安装到 App 的子目录中。我可以创建一个简单的“如果文件存在”来查看应用程序包(“.app”)是否存在于默认位置。但是,如果用户更改位置,我如何知道位置?

我知道使用 Applescript 我们可以使用 Bundle 标识符获取位置。但是对于这个应用程序,可以存在具有相同捆绑标识符的多个版本(如 Adob​​e Photoshop),我必须为所有版本安装插件文件。这个问题有什么好的解决方案?

编辑:我刚刚找到了一种从终端使用 LocationServices 工具“lsregister”获取所有应用程序位置的方法。我认为这就是要走的路。如果你有更好的方法,请告诉我。

0 投票
5 回答
18252 浏览

macos - Mac OS X 上的软件包卸载程序

作为对我的用户的一项服务,我想提供一个卸载脚本来完全删除我在 Mac OS X 上的应用程序的所有痕迹。该应用程序是使用包安装的,而不是仅仅被拖到 Applications 文件夹中,因为它是守护进程类型还需要在安装时运行脚本才能启动的应用程序。

我的想法是包含一个名为的文件uninstall.sh并将其放入/Library/Application Support/com.<mycompany>.<myapplication>/并从应用程序文档中引用它。目的基本上是在运行时停止守护进程,卸载和删除相应的 plist 以及删除任何应用程序文件。这听起来合理还是有更好的方法来实现这一点?

另外我想知道是否也删除包的痕迹使用是一种好习惯pkgutil --forget- 如果我不这样做,下次安装包时它会显示为升级而不是安装。对最佳实践信息有任何建议或指示吗?

在 OS X 上没有标准的方法吗?

0 投票
2 回答
2145 浏览

packagemaker - PackageMaker“脚本结果”要求永远不会通过

我正在尝试使用“脚本结果”要求来检查特定进程是否正在运行,以便在安装开始之前向用户发送消息。我的脚本是一个 shell 脚本,失败返回 1,成功返回 0。我遇到的问题是,无论我的返回值如何,安装程序流程都将其解释为失败。我没有使用非常简单的脚本:

(回声是为了向自己保证脚本实际上正在运行)。我尝试用很多东西(退出 0、退出 1、“true”、“TRUE”)替换最后一行,但没有任何结果导致测试通过。

当我激活此要求时,我还发现了以下 JavaScript 代码,这些代码会添加到 distribution.dist。

据我所知,if 语句中的表达式永远不会计算为真。所以,我假设这是我的问题。不过,我不知道如何绕过它,因为此代码是由 PackageMaker 生成的。


更新

我决定在这个印象中工作,这是 PackageMaker 中的一个错误,并且接近解决方法。我没有使用“脚本的结果”要求,而是使用了“Javascript 的结果”要求,并构建了一个 Javascript 函数,如下所示

现在我唯一的问题是,这仅在我通过绝对路径指向我的脚本时才有效。显然,这给安装人员带来了问题。

0 投票
1 回答
729 浏览

cocoa - Mac OS 和 PackageMaker:允许用户在安装过程中选择语言

我正在实现一个 Mac 应用程序。它的 Windows 版本已经实现。现在我面临以下问题:用多种语言实现新包。即对于Windows版本的软件,在执行安装文件时,用户可以选择应用程序的安装语言。我希望此功能包含在 Mac 版本中。

目前在 Mac 版本中,多语言支持是使用 NSLocalizedString 实现的,以便应用根据系统语言偏好选择语言并本地化安装包。

但是,我特别希望用户在安装时能够选择应用程序的安装语言。我现在正在使用 PackageMaker。请帮助解决这个问题。几个月来我一直在尝试实现此功能,但没有运气。

0 投票
1 回答
1179 浏览

macos - 如何设置 PackageMaker 安装后在桌面上创建图标?

我需要在安装后创建桌面图标,但我不知道如何。我正在使用包制造商创建 Mac 安装包 (.pkg) 我知道在桌面上创建快捷方式不是最佳做法,但这是一项重要要求。

0 投票
1 回答
1857 浏览

macos - 未安装 Mac OS PackageMaker .app 包?

我正在使用 PackageMaker 制作应用程序安装程序,我添加到安装中的资源之一是 .app 包。现在我完成的安装程序正在安装应用程序的所有组件,除了 .app 包本身。有谁之前经历过这个吗?如果您需要更多信息,我会很乐意提供。

谢谢