我已经部署了一个.pkg,它在/applications和一些支持产品中安装了一个应用程序。不过,现在应用程序已被重命名。
当一个新的
或
应用程序的现有用户安装最新版本,我希望它以新名称安装。
例如,一些用户已经安装了
com.example.myapp
捆绑在“/applications/old name.app”。但现在它需要安装/移动到“/applications/new name.app”。最坏的情况下,它应该同时保留旧的和新的。
现在的情况正好相反:它安装了
新的
应用程序位于
古老的
姓名。我在安装日志中看到:
installd[1950]:packagekit:applications/new name.app重新定位到applications/old name.app
所以MacOS检测到这是同一个应用程序,但认为用户已经将其“重新定位”到旧名称并保留在那里。我怎样才能鼓励它坚持新的名字?
我正在使用pkgbuild/productbuild的组合来执行此操作,生成阶段脚本如下:
TARGET_SRCROOT="${PROJECT_DIR}/Deployment Package"
# NOTE: the BUILT_PRODUCTS_DIR is a bit different during archive, but close enough relative to other derived dataâ¦
PKG_DESTINATION="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.pkg"
SUBCOMPONENTS_DIR="${TEMP_FILES_DIR}/${PRODUCT_NAME} [deployment components]"
SUBCOMPONENT_PKG="${SUBCOMPONENTS_DIR}/deployment-components.pkg"
mkdir -p "$SUBCOMPONENTS_DIR"
pkgbuild \
--root "$INSTALL_ROOT" \
--identifier "${PRODUCT_BUNDLE_IDENTIFIER}-components" \
--version "$MARKETING_BUNDLE_VERSION" \
--scripts "${TARGET_SRCROOT}/scripts" \
"$SUBCOMPONENT_PKG"
productbuild \
--identifier "$PRODUCT_BUNDLE_IDENTIFIER" \
--version "$MARKETING_BUNDLE_VERSION" \
--distribution "${TARGET_SRCROOT}/distribution.xml" \
--package-path "$SUBCOMPONENTS_DIR" \
"$PKG_DESTINATION"
因此,我可以轻松地自定义distribution.xml,还可以使用常见的安装前/安装后脚本。