質問

I成する必要がある素敵なインストーラのためのMacアプリケーション.してほしいと思いますディスクイメージ(DMG)は、所定のサイズ、レイアウト、背景イメージです。

まだこのプログラムによるスクリプトに統合することになり、既存のシステムの構築(りパックシステムなんかのみをインストーラー.の構築を行います。

すでに持っているDMG作成用"hdiutil"、"しんかいうアイコンのレイアウトを指定し、背景のビットマップ.

役に立ちましたか?

解決

多くの研究では、私たちはこの答えは、私がおとなのではないでしょう答えを自分の問題のための参考:

  1. になっていることを確認しよりアクセスのための福祉機器"が確認システム環境設定>>ユニバーサルアクセス。していくことが必須であAppleScriptです。して再起動後、この変更(この値は管理画面より変更可能でなMac OS Xサーバの10.4).

  2. 作R/W DMG.が必要でより大きい結果となります。この例では、bash変数"サイズ"のサイズKbの内容のフォルダの"源泉"bash変数までコピーされ、DMG:

    hdiutil create -srcfolder "${source}" -volname "${title}" -fs HFS+ \
          -fsargs "-c c=64,a=16,e=16" -format UDRW -size ${size}k pack.temp.dmg
    
  3. マウントにディスクイメージは、店舗のデバイス名(使って睡眠のための数秒後にこの操作):

    device=$(hdiutil attach -readwrite -noverify -noautoopen "pack.temp.dmg" | \
             egrep '^/dev/' | sed 1q | awk '{print $1}')
    
  4. 店舗の背景画像(PNG形式)フォルダ内の".背景の"DMG、店名の"backgroundPictureName"に変更します。

  5. 利用AppleScriptの視覚スタイル(名前です。アプリなければなbash変数"applicationName"利用実験を行い、最適化条件およびその他の特性として必要な):

    echo '
       tell application "Finder"
         tell disk "'${title}'"
               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 {400, 100, 885, 430}
               set theViewOptions to the icon view options of container window
               set arrangement of theViewOptions to not arranged
               set icon size of theViewOptions to 72
               set background picture of theViewOptions to file ".background:'${backgroundPictureName}'"
               make new alias file at container window to POSIX file "/Applications" with properties {name:"Applications"}
               set position of item "'${applicationName}'" of container window to {100, 100}
               set position of item "Applications" of container window to {375, 100}
               update without registering applications
               delay 5
               close
         end tell
       end tell
    ' | osascript
    
  6. FinializeのDMGによるアクセス権限の設定を適切に圧縮することができ:

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

雪豹、上記のapplescriptなセットアイコンの位置が正しくできるようにしSnow Leopardくなる場合もあります一回避策がなければなり、オープン設定後にアイコン、すなわち:

..
set position of item "'${applicationName}'" of container window to {100, 100}
set position of item "Applications" of container window to {375, 100}
close
open

他のヒント

にありまBashというスクリプト の作成-dmg ロイヤル-アカデミーのスタイルファンシDMGsカスタム背景のカスタムアイコンの位置や量の名前です。

違うものも作ってみたくて多くの年のために当社が行った時;で生き残るその他の人々に貢献しと伝えられてい作業性に優れています。

ものもありま ノード-appdmg るようになりモダンでアクティブな努力に基づくNode.js;チェックしてみて。

こに行くしないでください。として長期的にはMac開発できます、液ん。また多くのソリューション、ものすべてのも良いです。と思い問題はAppleになっ文書メタデータフォーマットのために必要なデータです。

こちらはどのようになっているので、非常に成功:

  1. 新規作成しDMG書き込み可能(!), 大きめのバイナリ、ファイルのようなreadme(sparseれてしまいます。

  2. マウントのDMGでレイアウト設定ファインダーは、何らかのツールが大好きないを参照FileStormリンクで良いです。背景画像通常画像を隠しフォルダ(".何か"をDMG.Putのコピーのアプリがバージョンでも、時代遅れかに一致しています。コピーその他のファイル(別名のreadmeファイル等) したいが、古いバージョンでいっぱいで仕分けもバッチリです。必ずアイコンを右サイズ、位置(IOW、レイアウトのDMGになりましたので)になります。

  3. UnmountのDMG、すべての設定を貯めておく必要があります。

  4. 書の作成DMGスクリプトとは次のように動作します:

    • にコピーしますのDMGうのは決して触れました。
    • マウントにコピーします。
    • で置換すべてのファイルを最新のもの(例:最新のアプリの後の構築).利用することさえ可能です mv または 数理計算上の差異の処理 そョンをインストールして下さい。ノー交換の際は、ファイルのようなアイコンのまま同じ位置と同じ、すべてのファイルまたはディレクトリコンテンツの少なくともと数理計算上の差異の処理、また通常使用すること。できるのはもちろんの背景画像とのつくることを確認して同寸法)です。
    • 交換後のファイルのスクリプトunmountのDMGコピーします。
    • 最後に呼hdiutilに変換し、書き込み可能なので、圧迫さない書き込み可能)DMG.

このメソッドはしない音に最適で信頼性があるとおもうんでの作品も。きのDMG(DMGテンプレート)のもとでもバージョン管理などSVN)なので、今までの偶発的の変更または破壊したりしようとするものからできるため、直接戻りたいときなどに改定でも大丈夫です。を追加できるDMGテンプレートをXcodeプロジェクトは、他のすべてのファイルに所属しているのDMG(readmeファイル、URL、ファイルは背景画像には、全てのバージョン管理下におくとそれを目標など外部の目標"を作成DMG"が走り、DMGスクリプトの上に追加古の主要な目標として依存す。アクセスできるファイルにXcodeを${SRCROOT}のリクエストを要求したページは常にソースのルート製品、アクセスできますの構築製品を${BUILT_PRODUCTS_DIR}(はいつものディレクトリが既に構築します。

結果:実際にXcodeを演出できるDMG末ます。Smart-gsのこのリリース。いを作成できrelase DMG写するというようにできるように自動化工程(プロセッサーとチップセッサーバーの場合のように)を使用xcodebuildからのコマンドライン(自動ィを構築します。

に関する初期のレイアウトをテンプレート FileStorm する上で、まずはそれができていました。では商業が非常に強力で使いやすい。通常版は以下20ドルでいます。かつ自動化FileStormをDMG例通AppleScript),では絶対手に入らないことが見つけたあなたは最適なテンプレートDMGでも簡単に更新するとともに毎にリリース。

この問題をより提供されるこの答えになります。

appdmg は、使いやすいオープンソースのコマンドラインプログラムを作成しdmgファイルから簡単なjson仕様となります。のreadmeファイルのオフィシャルサイト:

https://github.com/LinusU/node-appdmg

早例:

  1. イappdmg

    npm install -g appdmg
    
  2. 書jsonファイルspec.json)

    {
      "title": "Test Title",
      "background": "background.png",
      "icon-size": 80,
      "contents": [
        { "x": 192, "y": 344, "type": "file", "path": "TestApp.app" },
        { "x": 448, "y": 344, "type": "link", "path": "/Applications" }
      ]
    }
    
  3. 実行プログラム

    appdmg spec.json test.dmg
    

(再配布および使用を許可します。私の作appdmg)

ご興味のあることにあるかのようなDMG:

hdiutil create XXX.dmg -volname "YYY" -fs HFS+ -srcfolder "ZZZ"

場所

XXX == disk image file name (duh!)
YYY == window title displayed when DMG is opened
ZZZ == Path to a folder containing the files that will be copied into the DMG

私のアプリ DropDMG, が容易に作成するための方法ディスクに画像と背景画像のアイコンをレイアウト、カスタム量アイコンは、ソフトウェアのライセンス契約に関するで制御できるからビルドシステムのdropdmg"コマンドラインツールまたはAppleScript.ご希望があれば、写真、ライセンスRTFファイルを保存でき下にバージョン管理システム。

またこのmacアプリを自動化のプロセス http://www.araelium.com/dmgcanvas/ すべてを作成している場合にdmgリケーションにはインストーラーを使って、macアプリ

を設定したい場合はカスタム量のアイコンを使用し以下のコマンド

/*Add a drive icon*/
cp "/Volumes/customIcon.icns" "/Volumes/dmgName/.VolumeIcon.icns"  


/*SetFile -c icnC will change the creator of the file to icnC*/
SetFile -c icnC /<your path>/.VolumeIcon.icns

を読み書きdmg

/*to set custom icon attribute*/
SetFile -a C /Volumes/dmgName

を作成する。DMG行なうことができるだけの利用も開資料

.DS_Storeファイルの店windowsの設定です。Windows上での設定のアイコンをレイアウト、ウィンドウを背景に、ウィンドウサイズの。きます。DS_Storeファイルが必要なのウィンドウ搭載画像の保存配列ファイルをwindowsます。

きています。DS_Storeファイルを作成し、できるだけコピーで作成したインストーラ(DMG).

も必要とするコマンドを使用したラインアプローチの包装およびdmg作成"プログラムによるスクリプト".最良の答えを見ながらAideプロジェクトカスタマーセンタービルの枠組み(R1).そこには、火というものに対するスクリプト(AdiumApplescriptRunner)を回避するためOSX WindowsServer GUIの相互作用"osascript applescript.scpt"アプローチする必要があるとしてログインをビルダーにdmg作成コマンドラインからvt100ます。

OSXパッケージ管理システムがこんなに先進のUnixenができるこのタスクを簡単に整備した。

R1: http://hg.adium.im/adium-1.4/file/00d944a3ef16/Release

だそして私はこの作業に自分のプロジェクト(させることができることをXcode).追加することで、3つのスクリプトをご利用のお客様相を自動的に作成するディスクイメージ製品は嬉しい、快適性は十分満足できますすべてのたくさんあります。構築プロジェクトのDMGまで待ってる貴社の製品フォルダにまとめた。

スクリプト1(作温度ディスクイメージ):

#!/bin/bash
#Create a R/W DMG

dir="$TEMP_FILES_DIR/disk"
dmg="$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.temp.dmg"

rm -rf "$dir"
mkdir "$dir"
cp -R "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.app" "$dir"
ln -s "/Applications" "$dir/Applications"
mkdir "$dir/.background"
cp "$PROJECT_DIR/$PROJECT_NAME/some_image.png" "$dir/.background"
rm -f "$dmg"
hdiutil create "$dmg" -srcfolder "$dir" -volname "$PRODUCT_NAME" -format UDRW

#Mount the disk image, and store the device name
hdiutil attach "$dmg" -noverify -noautoopen -readwrite

スクリプト2(設定画面物性スクリプト):

#!/usr/bin/osascript
#get the dimensions of the main window using a bash script

set {width, height, scale} to words of (do shell script "system_profiler SPDisplaysDataType | awk '/Main Display: Yes/{found=1} /Resolution/{width=$2; height=$4} /Retina/{scale=($2 == \"Yes\" ? 2 : 1)} /^ {8}[^ ]+/{if(found) {exit}; scale=1} END{printf \"%d %d %d\\n\", width, height, scale}'")
set x to ((width / 2) / scale)
set y to ((height / 2) / scale)

#get the product name using a bash script
set {product_name} to words of (do shell script "printf \"%s\", $PRODUCT_NAME")
set background to alias ("Volumes:"&product_name&":.background:some_image.png")

tell application "Finder"
    tell disk product_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 {x, y, (x + 479), (y + 383)}
        set theViewOptions to the icon view options of container window
        set arrangement of theViewOptions to not arranged
        set icon size of theViewOptions to 128
        set background picture of theViewOptions to background
        set position of item (product_name & ".app") of container window to {100, 225}
        set position of item "Applications" of container window to {375, 225}
        update without registering applications
        close
    end tell
end tell

上記の測定ウィンドウのウィンドウの作業のための私のプロジェクトによりサイズの背景の日替アイコンの解決、で修正が必要な場合もあるこれらの値がでます。

スクリプト3(これからも応援よろしくお願いしディスクイメージのスクリプト):

#!/bin/bash
dir="$TEMP_FILES_DIR/disk"
cp "$PROJECT_DIR/$PROJECT_NAME/some_other_image.png" "$dir/"

#unmount the temp image file, then convert it to final image file
sync
sync
hdiutil detach /Volumes/$PRODUCT_NAME
rm -f "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.dmg"
hdiutil convert "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.temp.dmg" -format UDZO -imagekey zlib-level=9 -o "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.dmg"
rm -f "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.temp.dmg"

#Change the icon of the image file
sips -i "$dir/some_other_image.png"
DeRez -only icns "$dir/some_other_image.png" > "$dir/tmpicns.rsrc"
Rez -append "$dir/tmpicns.rsrc" -o "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.dmg"
SetFile -a C "$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.dmg"

rm -rf "$dir"

の画像ファイルを使用は$PROJECT_DIR/$プロジェクト/ディレクトリ!

これらの回答方法も複雑で、時代は変わりました。以下の作品10.9ギーンゲンアンデアブレン、アクセス権が正しいと見えます。

を読み取り専用DMGからディレクトリ

#!/bin/sh
# create_dmg Frobulator Frobulator.dmg path/to/frobulator/dir [ 'Your Code Sign Identity' ]
set -e

VOLNAME="$1"
DMG="$2"
SRC_DIR="$3"
CODESIGN_IDENTITY="$4"

hdiutil create -srcfolder "$SRC_DIR" \
  -volname "$VOLNAME" \
  -fs HFS+ -fsargs "-c c=64,a=16,e=16" \
  -format UDZO -imagekey zlib-level=9 "$DMG"

if [ -n "$CODESIGN_IDENTITY" ]; then
  codesign -s "$CODESIGN_IDENTITY" -v "$DMG"
fi

を読み取り専用DMGとのアイコン.ポタイプ)

#!/bin/sh
# create_dmg_with_icon Frobulator Frobulator.dmg path/to/frobulator/dir path/to/someicon.icns [ 'Your Code Sign Identity' ]
set -e
VOLNAME="$1"
DMG="$2"
SRC_DIR="$3"
ICON_FILE="$4"
CODESIGN_IDENTITY="$5"

TMP_DMG="$(mktemp -u -t XXXXXXX)"
trap 'RESULT=$?; rm -f "$TMP_DMG"; exit $RESULT' INT QUIT TERM EXIT
hdiutil create -srcfolder "$SRC_DIR" -volname "$VOLNAME" -fs HFS+ \
               -fsargs "-c c=64,a=16,e=16" -format UDRW "$TMP_DMG"
TMP_DMG="${TMP_DMG}.dmg" # because OSX appends .dmg
DEVICE="$(hdiutil attach -readwrite -noautoopen "$TMP_DMG" | awk 'NR==1{print$1}')"
VOLUME="$(mount | grep "$DEVICE" | sed 's/^[^ ]* on //;s/ ([^)]*)$//')"
# start of DMG changes
cp "$ICON_FILE" "$VOLUME/.VolumeIcon.icns"
SetFile -c icnC "$VOLUME/.VolumeIcon.icns"
SetFile -a C "$VOLUME"
# end of DMG changes
hdiutil detach "$DEVICE"
hdiutil convert "$TMP_DMG" -format UDZO -imagekey zlib-level=9 -o "$DMG"
if [ -n "$CODESIGN_IDENTITY" ]; then
  codesign -s "$CODESIGN_IDENTITY" -v "$DMG"
fi

その他のニーズを起こし、これらのものであるが、臨時のコピー SRC_DIRを適用しに変更される前に作成DMG.

いただきました、記述の新しいシチズンシップ)のコマンドライン用ではないかと思います。なに依存ファインダー/AppleScriptいずれかの推奨されていません)別名ャApiで設定します。

とにかく、関心のある方で でそれを見つけることができPyPi;ドキュメント ご一読のドキュメント.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top