2013-05-16 7 views
11

का उपयोग कर डीएमजी स्थापना के लिए पृष्ठभूमि छवि को कॉन्फ़िगर नहीं कर सकता मै मैक ओएस एक्स 10.7.5 पर सीएमके 2.8.10.2 के साथ काम कर रहा हूं।सीएमके

मैंने सीएमके को एक्सकोड के साथ एक सरल अनुप्रयोग बनाने के लिए कॉन्फ़िगर किया है जो एक खाली विंडो बनाता है।

सेट (CPACK_DMG_BACKGROUND_IMAGE/path/to/छवि)

और कस्टम .DS_Store का उपयोग कर खिड़कियों आकार और आइकन नियुक्ति स्थापित करने के लिए: मैं तो CMake कॉन्फ़िगर करने के लिए कार्यक्रम का उपयोग कर एक पृष्ठभूमि छवि को निर्दिष्ट करने के डीएमजी स्थापना निर्माण करने की कोशिश :

सेट (CPACK_DMG_DS_STORE/path/to/DS_Store फ़ाइल)

Xcode सफलतापूर्वक आवेदन का निर्माण और डिस्क छवि बनाएगा। जब मैं छवि को माउंट करता हूं तो यह सही आकार और आइकन प्लेसमेंट के साथ आता है, हालांकि पृष्ठभूमि हमेशा निर्दिष्ट पृष्ठभूमि छवि के बजाय सफेद पर सेट होती है।

डिस्क छवि में पृष्ठभूमि को ठीक से प्रदर्शित करने के लिए क्या आवश्यक है?

उत्तर

10

दुर्भाग्य से किसी ने भी इस प्रश्न का जवाब नहीं दिया है। यह एक निराशाजनक अनुभव रहा है, हालांकि, ऐसा लगता है कि मैंने अंततः इसे हल किया है, इसलिए अगर किसी को कभी भी इसका सामना करना पड़े तो मैं किसी और को दुःख बचाने के लिए यहां एक विवरण पोस्ट कर रहा हूं।

एक पृष्ठभूमि छवि पर काम करने के लिए पृष्ठभूमि के लिए, मूल रूप से दो चीजें होनी चाहिए; पृष्ठभूमि फ़ाइल को स्थापना छवि के भीतर मौजूद होना चाहिए, और छवि की जड़ पर .DS_Store को उस पृष्ठभूमि का उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए।

.DS_Store फ़ाइल को एक लिखने योग्य स्थिति में स्थापित छवि को आरोहित करके कॉन्फ़िगर किया जा सकता है और फिर खोज विकल्प खोजक के दृश्य मेनू से दिखाएं। वहां से कोई पृष्ठभूमि के लिए चित्र विकल्प का चयन करेगा और में प्लेसहोल्डर को पृष्ठभूमि फ़ाइल खींचें दृश्य विकल्प पैनल दिखाएं।

सीपीएक्स के साथ काम करते समय, चाल छवि को खींचने में सक्षम होना है। जब कोई इंस्टॉलेशन के लिए पृष्ठभूमि सेट करता है, बनाता है, और छवि को माउंट करता है तो ऐसा नहीं लगेगा कि पर खींचने के लिए कोई पृष्ठभूमि है, दृश्य विकल्प पैनल दिखाएं। किसी टर्मिनल में चला जाता है और घुड़सवार स्थापित की जड़ पर

ls -a 

करता है, कि आदेश अन्य बातों के अलावा सूची जाएगा, एक फ़ाइल background.png कहा जाता है। यह फ़ाइल खोजक में प्रदर्शित नहीं होती है।

इस फ़ाइल को टर्मिनल में प्रदर्शित करने का कारण है और फ़ाइंडर नहीं है क्योंकि इसमें एक विस्तारित गुण हैं जो इसे खोजक के लिए छुपाता है। चूंकि फ़ाइल खोजक से छिपी हुई है, इसलिए फ़ाइल को पर खींचें, दृश्य विकल्प पैनल दिखाएं।

ls [email protected] 

बताएगा कि फ़ाइल में विस्तारित विशेषताओं को लागू किया गया है। Com.apple.FinderInfo नामक केवल एक होना चाहिए। इस विशेषता को हटाने से फ़ाइल को खोजक में दिखाई देनी चाहिए। विशेषता टर्मिनल

xattr -d com.apple.FinderInfo background.png 

से इस आदेश का उपयोग कर हटाया जा सकता है विशेषता पृष्ठभूमि फ़ाइल अभी भी नहीं अभी खोजक में दिखाई देगा को हटाने के बाद। किसी को इंस्टॉल छवि को बाहर निकालना और निकालना होगा।एक बार ऐसा होने के बाद, पृष्ठभूमि फ़ाइल को खोजक में दिखाई देना चाहिए और कोई इसे पर खींच सकता है दृश्य विकल्प पैनल दिखाएं, जो पृष्ठभूमि छवि को इंस्टॉल छवि के लिए खोजक विंडो में प्रदर्शित करने का कारण बनता है। उसके बाद, कोई इंस्टॉल छवि के रूट से .DS_Store फ़ाइल की प्रतिलिपि बना सकता है और उसे CPACK_DMG_DS_STORE विशेषता पर लागू कर सकता है, और जब भी कोई इंस्टॉलेशन छवि बनाई जाती है तो पृष्ठभूमि छवि दिखाई देनी चाहिए।

+2

http://crazyedy.com/tech/?p=535 छवि को लिखने योग्य बनाने के लिए देखें। –

+1

छवि लिखने योग्य बनाने का सबसे आसान तरीका पहली बार 'सेट (CPACK_DMG_FORMAT "UDRW")' का उपयोग करना है, फिर 'UDBZ' पर वापस स्विच करें – raptor

+2

@LarsBilke एक छवि लिखने योग्य बनाने के लिए, इसे टर्मिनल में चलाएं: 'hdiutil convert nameoffile.dmg -format UDRW -o nameoffile_writable.dmg' – congusbongus

3

@TronThomas प्रतिक्रिया ने मुझे नाटकीय रूप से मदद की। अपने उत्तर की आपूर्ति नहीं करने के लिए, यहां प्रक्रिया के बारे में कुछ अतिरिक्त जानकारी दी गई है जिसे मैंने अभी काम किया है। संदर्भ के लिए, यह मैकोज सिएरा और सीएमके 3.6.2 के साथ है।

  1. set(CPACK_DMG_BACKGROUND_IMAGE /path/to/image)
  2. के साथ एक पृष्ठभूमि छवि सेट डीएमजी फ़ाइल बनाएँ CPack जनरेटर DragNDrop
  3. माउंट इस बिंदु पर एक छाया फ़ाइल hdiutil attach mypackage.dmg -shadow junk.dmg
  4. का उपयोग कर पढ़ें/लिखें मोड में छवि का उपयोग कर, हम डॉन ' एक पृष्ठभूमि छवि नहीं देखते हैं, लेकिन डीएमजी फ़ाइल में फ़ोल्डर .background फ़ोल्डर में मौजूद है। हमारी रणनीति विंडो बिल्कुल बनाने के लिए खोजक का उपयोग करना होगा, फिर हम .DS_Store फ़ाइल कॉपी करें।
  5. खोजकर्ता मेनू पर, क्लिक करें View->Show View Options
  6. Background: के तहत, Picture रेडियो बटन पर क्लिक करें। फिर, Drag Image Here टेक्स्ट के ऊपर की छवि पर क्लिक करें। नोट, वर्तमान दृश्य as Icons होना चाहिए अन्यथा यह संवाद वहां नहीं होगा।
  7. फ़ाइल संवाद में, घुड़सवार डीएमजी छवि पर वापस जाएं। फिर, cmd-shift-. दबाएं इसे छिपे हुए फ़ोल्डर दिखाना चाहिए। यहां से, .background फ़ोल्डर में जाएं और पृष्ठभूमि छवि का चयन करें।
  8. यदि सबकुछ ठीक से काम करता है, तो पृष्ठभूमि छवि अब दिखाई देनी चाहिए।
  9. विंडोज आकार को समायोजित करें और View मेनू पर इच्छित टूलबार को देखें या छुपाएं। सटीक सेटिंग्स इंस्टॉलर द्वारा दोहराया जाएगा।
  10. वॉल्यूम की रूट निर्देशिका में किसी अन्य स्थान पर छिपी हुई .DS_Store फ़ाइल को कॉपी करें। cmd-shift-. चाल का उपयोग फ़ाइल को देखने या बस इस बिंदु पर टर्मिनल का उपयोग सब कुछ कॉपी करने के लिए किया जा सकता है। नोट, हम इस फ़ाइल का नाम DS_Store पर बदल सकते हैं, ताकि जब हम इसे स्टोर करते हैं तो यह छुपा नहीं जाता है।
  11. खोजक से डीएमजी फ़ाइल निकालें। junk.dmg या शेष छाया फ़ाइलें हटाएं।
  12. CMakeLists.txt में वापस, चर set(CPACK_DMG_DS_STORE /path/to/DS_Store) सेट करें यह वह फ़ाइल है जिसे हमने अभी बनाया है और वॉल्यूम से बाहर ले जाया गया है।
  13. CPack के साथ डीएमजी फ़ाइल को पुनर्निर्माण करें। सब कुछ पहले देखा जाना चाहिए।

चेतावनी के रूप में, .DS_Store फ़ाइल में फ़ाइल स्थान, उपयोगकर्ता नाम और जैसे फ़ाइल में संग्रहीत बहुत सारी जानकारी है। फिलहाल, मुझे नहीं पता कि इस जानकारी को कैसे नियंत्रित किया जाए, इसलिए अंतिम डीएमजी फ़ाइल को वितरित करते समय थोड़ा सावधान रहें। यदि आप वहां मौजूद चीज़ों के बारे में उत्सुक हैं, तो xxd जैसे हेक्स संपादक का उपयोग करें।

एक संक्षिप्त टिप्पणी के रूप में, यह प्रक्रिया बहुत उलझन में है। उस ने कहा, मुझे नहीं लगता कि यह किटवेयर की गलती है। हालांकि, वे प्रक्रिया को बेहतर तरीके से दस्तावेज कर सकते थे।जो मैं बता सकता हूं, .DS_Store फ़ाइल प्रारूप अच्छी तरह से प्रलेखित या खुलासा नहीं है, इसलिए हमें मूल रूप से फ़ाइंडर का उपयोग करने के लिए मजबूर होना पड़ता है ताकि हम हमारे लिए एक बना सकें। यह एक मैकोज़ मुद्दा है जिसे शायद ठीक किया जाना चाहिए।