मैक ओएस एक्स के लिए अच्छा डीजीएम "इंस्टॉलर" बनाना


83

मैंने मैक ओएस एक्स के लिए अपना पहला क्यूटी एप्लिकेशन बनाया है। अब मैं अच्छी .dmg फ़ाइल बनाना चाहता हूं जो उपयोगकर्ता को आसानी से इसे स्थापित करने की अनुमति देगा। मैं कुछ सोच रहा हूँ जैसे फ़ायरफ़ॉक्स है (चित्र देखें): यहां छवि विवरण दर्ज करें

मैं इसके लिए पूरी तरह से नया हूं, इसलिए मुझे यह भी नहीं पता कि कहां से शुरू किया जाए।


2
हो सकता है कि यह आपकी मदद कर सकता है stackoverflow.com/questions/96882/…
रोजर लिंड्सजॉ

मुझे वास्तव में इसे स्वचालित होने की आवश्यकता नहीं है, मुझे शुरू करने के लिए कुछ आसान करना पसंद होगा;)
xx77aBs

3
यह उपयोग का हो सकता है: el-tramo.be/guides/fancy-dmg
माइक के

@ मायके: आपको इसे उत्तर के रूप में पोस्ट करना चाहिए, मैं इसे स्वीकार करूँगा, यह वही है जो मैं देख रहा था;)
xx77aBs

आप इस ट्यूटोरियल को देख सकते हैं । यह चरण-दर-चरण आपको दिखाता है कि केवल iDMG (जो एक मुफ्त सॉफ्टवेयर है), फाइंडर और एक टर्मिनल का उपयोग करके सुंदर डीएमजी कैसे बनाएं। यह काफी आसान है।
इगोर ऑगस्टो

जवाबों:


90

इस उत्तर को प्रदान करके इस प्रश्न को अद्यतित करना।

appdmgएक सरल, आसानी से उपयोग होने वाला, ओपन-सोर्स कमांड लाइन प्रोग्राम है जो एक साधारण json विनिर्देशन से dmg-files बनाता है। आधिकारिक वेबसाइट पर रीडमी पर एक नज़र डालें:

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 का निर्माता हूं)


अन्य समाधानों की तुलना में, यह आश्चर्यजनक रूप से सरल है।
ऐलुन

1
जाने के लिए Yay, Linus रास्ता। उप्पसत्तार धर।
प्रो। फॉकन

OSX 10.6.8 के लिए संकलित बाइनरी के लिए कोई भी मौका? मुझे नहीं पता कि आपके स्रोतों को कैसे संकलित किया जाए ... (एक सेब के बहुत से लोग यहाँ नहीं ...)
मार्क मील्स

4
@MarkMiles का अधिकांश कोड जावास्क्रिप्ट में लिखा गया है और इस प्रकार इसका अनुपालन नहीं किया जाता है। Npm सभी स्रोत फ़ाइलों (C, उद्देश्य-C) को संकलित करने का ध्यान रखेगा। सब कुछ चलाने का सबसे आसान तरीका 1 है) काढ़ा ( brew.sh ) स्थापित करें 2) स्थापित करें Node.js ( brew install node) जो भी बंडल करता है npm। 3) उत्तर में "त्वरित उदाहरण" का पालन करें
लिनस अननबेक

@ लोथर मुझे लगता है कि यह आसान वितरण के लिए बाइनरी के रूप में appdmg को पैकेज करने के लिए बहुत अच्छा होगा, लेकिन उपयोग केस मैंने पहले से ही एक नोडज वातावरण शामिल किया था। लेकिन अगर आपको लगता है कि यह एक "सरल शेल स्क्रिप्ट" में किया जा सकता है, तो मैं आपको कोशिश करने की हिम्मत करता हूं। कोड पर एक नज़र है, यह बहुत तुच्छ नहीं है। एक कारण यह है कि हमारे पास शेल स्क्रिप्ट के अलावा अन्य प्रोग्रामिंग लैंग्वेज हैं।
लाइनस उन्नेबेक

20

यह काफी आसान है - मूल विचार यह है कि आप डिस्क उपयोगिता का उपयोग करके एक खाली छवि बनाते हैं (इसे कम से कम अपना सामान रखने के लिए पर्याप्त बनाएं - सटीक आकार कोई फर्क नहीं पड़ता), खोजक का उपयोग करके उस छवि को खोलें , अपना सामान अंदर डालें और इसे व्यवस्थित करें जिस तरह से आप इसे चाहते हैं ( आइकन आकार या पृष्ठभूमि छवि जैसी चीजों को सेट करने के लिए राइट-क्लिक और शो व्यू विकल्प का उपयोग करें )। यही कारण है कि लगभग यह है - अवशेष कि आर / परिवर्तित करने के लिए डब्ल्यू छवि एक संकुचित छवि में है कि सभी: इजेक्ट यह और उपयोग Convert में डिस्क उपयोगिता एक संकुचित छवि में परिवर्तित करने के लिए।


9

मौजूदा उत्तरों में से किसी ने भी वास्तव में मेरे लिए ऐसा नहीं किया; एक उत्तर पुस्तिका है, और दो अन्य विकल्प - iDMG और नोड- appdmg - दोनों में खोजक को एप्स्क्रिप्ट करना शामिल है जो आदर्श नहीं है।

एक स्वचालित बिल्ड स्टेप के रूप में इसे करने का सबसे अच्छा तरीका एक टेम्प्सीडॉग बनाना है जो ठीक उसी तरह दिखता है जैसे आप चाहते हैं (सामान्य निर्देशों का पालन करना, उदाहरण के लिए साइमन अर्बेक का उत्तर, लेकिन इसे संपीड़ित करने का अंतिम चरण नहीं), फिर अपने बिल्ड में स्क्रिप्ट:

  1. छवि संलग्न करने के लिए हड्युटिल का उपयोग करें
  2. माउंटेड इमेज में एप्लिकेशन को कॉपी करने के लिए cp आदि का उपयोग करें
  3. हडुतिल डिटैच
  4. छवि को संपीड़ित करें: हड्युटिल कन्वर्ट "इनबिल्ट्स" -क्वेट -फॉर्म यूटजो -इमेजेक ज़्लिब-लेवल = 9 -ओ "मायएप्प-0.3 केंटग"

Https://github.com/remko/fancy-dmg/ पर एक मेकफाइल है जिसमें ये चरण हैं।


2
हम AppleScript को छोड़ने और नोड- appdmg क्रॉस-प्लेटफ़ॉर्म लाने के लिए काम कर रहे हैं। यदि आप काम का पालन करना चाहते हैं, तो यहां देखें: github.com/LinusU/node-appdmg/issues?milestone=1&state=open
Linus Unnebäck

1
@ LinusUnnebäck यह कमाल है; साझा करने के लिए धन्यवाद! यहां तक ​​कि सिर्फ एप्सस्क्रिप्ट की निर्भरता को हटाना उत्कृष्ट होगा।
जोसेफ

कोई बात नहीं :) हमें वास्तव में अपना स्वयं का .DS_Store लिखने में सक्षम होने की जरूरत है और सभी को वास्तव में पता चल गया है, मुझे इसे लागू करने के लिए समय निकालने की आवश्यकता है। ( github.com/LinusU/node-appdmg/issues/14 )
लिनस अननबेक

.DS_Store प्रलेखित नहीं है और मुझे यकीन है कि यह कभी नहीं होगा, इसलिए यह कोई रास्ता नहीं है। टेम्पलेट एकमात्र विश्वसनीय समाधान लगता है।
लोथर


1

आप खोजक के साथ ऐसा कर सकते हैं:

  1. डाउनलोड करें और इस खाली DMG फ़ाइल को अनज़िप करें (मैं इसे बनाने और अपलोड करने वाला व्यक्ति हूं)
  2. DMG फ़ाइल को उचित आकार में बदलें (उपयुक्त आकार आमतौर पर इसका वर्तमान आकार और आपकी .app फ़ाइल का आकार) है। ऐसा करने के लिए, डिस्क उपयोगिता खोलें (यदि आपको नहीं पता कि यह कैसे करना है, तो खोजेंdisk utility लॉन्चपैड में )। फिर मेनू बार में "छवियाँ" पर क्लिक करें और "आकार बदलें ..." चुनें। आपको एक फ़ाइल खोलने के लिए एक विंडो मिलेगी, खाली DMG फ़ाइल खोलें।
  3. इसे माउंट करने के लिए DMG फ़ाइल पर डबल-क्लिक करें। डेस्कटॉप नाम का एक उपकरण Untitledदिखाई देना चाहिए। इसे उस नाम का नाम दें जिसे आप चाहते हैं (आप शायद इसे उसी नाम देना चाहते हैं जैसा कि आपका प्रोग्राम है)।
  4. उस उपकरण को खोलें। आपको कुछ इस तरह से देखना चाहिए:

    यहां छवि विवरण दर्ज करें

    यदि एप्लिकेशन फ़ोल्डर के शॉर्टकट को छोड़कर सब कुछ सफेद है, तो Cmd+ दबाएं Jऔर एक विंडो खोली जाएगी। उस विंडो के निचले भाग पर, "यहां खींचें छवि" लेबल के साथ एक वर्ग है। उस वर्ग पर क्लिक करें और एक खुला संवाद खुल जाएगा। उस डायलॉग में, Cmd+ Shift+ Gटाइप करें और image.png चुनें।/Volumes/(whatever you called the device in step 3)/.image

    एप्लिकेशन फ़ोल्डर के शॉर्टकट को छोड़कर यहां सब कुछ सिर्फ एक पृष्ठभूमि छवि है। आप पृष्ठभूमि छवि (जिसमें पृष्ठभूमि रंग और तीर शामिल हैं) को बदलना चाहते हैं। ऐसा करने के लिए, फ़ाइल को एक छवि संपादक में खोलें और जो चाहें उसे संपादित करें। ऐसा करने के बाद, आपको डिवाइस को अनमाउंट करने और परिवर्तनों को देखने के लिए DMG फ़ाइल खोलकर इसे रिमूव करने की आवश्यकता हो सकती है। छवि में आपने जो डाला है, उसके आधार पर, आपको नई पृष्ठभूमि छवि को फिट करने के लिए शॉर्टकट को एप्लिकेशन फ़ोल्डर में स्थानांतरित करने की भी आवश्यकता हो सकती है।/Volumes/(whatever you called the device in step 3)/.image/image.png

  5. अपनी .app फ़ाइल को उस विंडो के तीर की शुरुआत में खींचें जहाँ DMG फ़ाइल से डिवाइस खोला गया है ताकि यह इस तरह दिखे:

    यहां छवि विवरण दर्ज करें

    आपको यह कहते हुए एक त्रुटि मिल सकती है कि पर्याप्त खाली स्थान नहीं है। यदि ऐसा है, तो चरण 2 पर वापस जाएँ और DMG फ़ाइल को बड़े आकार में आकार दें।

  6. फाइंडर में डिवाइस के नाम के आगे तीर पर क्लिक करके डिवाइस को अनमाउंट करें:

    यहां छवि विवरण दर्ज करें

  7. केवल पढ़ने के लिए DMG फ़ाइल में कनवर्ट करें। ऐसा करने के लिए, टर्मिनल खोलें और इसे टाइप करें ( /path/to/dmg/fileDMG फ़ाइल के लिए पथ nameOfDmgFile.dmgद्वारा और DMG फ़ाइल के नाम से प्रतिस्थापित करें ):

    cd /path/to/dmg/file
    hdiutil convert -format UDZO -o newNameOfDmgFile.dmg nameOfDmgFile.dmg
    

    यह एक नई DMG फ़ाइल newNameOfDmgFile.dmg(या जो भी आपके द्वारा उपयोग किया गया अन्य नाम) बनाएगा , जो कि वह फ़ाइल है जिसे आप चाहते हैं।


हमें DMG का आकार बदलने की आवश्यकता क्यों है (जैसा आपने बिंदु 2 में बताया है)
कृष्ण मारू

@ कृष्णमारु यह एक लंबा समय है जब से मैंने यह उत्तर लिखा है, लेकिन अगर मुझे सही याद है, तो आप एक बड़ी फाइल को एक डीएमजी में कॉपी करने की कोशिश करेंगे, जो बहुत छोटी है।
डोनाल्ड डक

0

आप इसके लिए डिस्क उपयोगिता का उपयोग कर सकते हैं, लेकिन यदि आप पृष्ठभूमि में एक चित्र चाहते हैं, तो आपको कुछ उन्नत निर्देशों की आवश्यकता है।

सबसे पहले, डिस्क उपयोगिता खोलें,
फिर फ़ाइल> नई छवि> रिक्त छवि पर क्लिक करें।
यह आपको इसके आकार और नाम के लिए पूछेगा।
उसके बाद, आप इसमें फाइलें डाल सकते हैं, और वहां आप जा सकते हैं!

नोट: यह मैक ओएस Mojave पर परीक्षण किया गया था। मैं पिछले संस्करणों के बारे में नहीं जानता।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.