Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 使用$HOME/Application文件夹创建dmg安装程序_Macos_Installation_Packagemaker_Dmg_Home Directory - Fatal编程技术网

Macos 使用$HOME/Application文件夹创建dmg安装程序

Macos 使用$HOME/Application文件夹创建dmg安装程序,macos,installation,packagemaker,dmg,home-directory,Macos,Installation,Packagemaker,Dmg,Home Directory,我已经为根应用程序文件夹(/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

我已经为根应用程序文件夹(/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
#/垃圾箱/垃圾箱
#http://stackoverflow.com/questions/96882/how-do-i-create-a-nice-looking-dmg-for-mac-os-x-using-command-line-tools
设置-o verbose#echo start+o verbose#echo off
#注意:这必须在Mac上运行
APP_NAME=“XXX”
OUT\u MAC=OUT/
DMG_PATH=${OUT_MAC}${APP_NAME}.DMG
DMG_CONTENT_PATH=${OUT_MAC}内容
BUNDLE\u PATH=${DMG\u CONTENT\u PATH}/${APP\u NAME}.APP
#清洁旧的dmg(如果存在)
rm-rf${DMG_PATH}
SetFile-ab“${BUNDLE_PATH}”
hdiutil create-srcfolder${DMG_CONTENT_PATH}-volname${APP_NAME}-fs HFS+\
-fsargs“-c c=64,a=16,e=16”-格式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如果指定以下内容,则可以执行此操作:

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文件