【问题标题】:Create dmg installer with $HOME/Application folder使用 $HOME/Application 文件夹创建 dmg 安装程序
【发布时间】:2014-02-06 08:52:57
【问题描述】:

我已经创建了用于将应用程序安装到根应用程序文件夹 (/Application) 的脚本,但我无法为用户主文件夹 $HOME/Application (~/Application) 创建相同的脚本。 这是我的脚本

#!/bin/sh
#http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools

set -o verbose #echo onset +o verbose #echo off

# Note: this must run on a Mac

APP_NAME="XXX"
OUT_MAC=out/
DMG_PATH=${OUT_MAC}${APP_NAME}.dmg
DMG_CONTENT_PATH=${OUT_MAC}contents
BUNDLE_PATH=${DMG_CONTENT_PATH}/${APP_NAME}.app

#clean old dmg if exist
rm -rf ${DMG_PATH}

SetFile -a B "${BUNDLE_PATH}"

hdiutil create -srcfolder ${DMG_CONTENT_PATH} -volname ${APP_NAME} -fs HFS+ \
-fsargs "-c c=64,a=16,e=16" -format UDRW -size 550m ${DMG_PATH}.temp.dmg

device=$(hdiutil attach -readwrite -noverify -noautoopen "${DMG_PATH}".temp.dmg | \
egrep '^/dev/' | sed 1q | awk '{print $1}')

osascript <<EOT
tell application "Finder"
tell disk "${APP_NAME}"
open
set current view of container window to icon view
set toolbar visible of container window to false
set statusbar visible of container window to false
set the bounds of container window to {200, 100, 900, 530}
set theViewOptions to the icon view options of container window
set arrangement of theViewOptions to snap to grid
set icon size of theViewOptions to 96
set background picture of theViewOptions to file ".background:installer_dmg_bg.png"
make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
delay 1
set position of item "${APP_NAME}" of container window to {200, 200}
set position of item "Applications" of container window to {500, 200}
-- update without registering applications
delay 5
-- eject
end tell
end tell
EOT

chmod -Rf go-w "/Volumes/${APP_NAME}"
sync
sync
hdiutil detach ${device}
sync
hdiutil convert "${DMG_PATH}".temp.dmg -format UDZO -imagekey zlib-level=9 -o ${DMG_PATH}
rm -rf "${DMG_PATH}".temp.dmg

我尝试改变

在容器窗口创建新的别名文件到 POSIX 文件“/Applications” 带有属性 {name:"Applications"}

在容器窗口创建新的别名文件到 POSIX 文件“~/Applications” 带有属性 {name:"Applications"}

在容器窗口创建新的别名文件到 POSIX 文件“$HOME/Applications” 带有属性 {name:"Applications"}

但没有运气!

【问题讨论】:

    标签: macos installation packagemaker dmg home-directory


    【解决方案1】:

    如果你指定,你可以这样做:

    path to applications folder from user domain
    

    所以在你的脚本中可能是这样的:

    set appHome to path to applications folder from user domain
    make new alias file at container window to appHome with properties {name:"Applications"}
    

    *当使用从用户域到应用程序文件夹的路径时不需要POSIX file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      相关资源
      最近更新 更多