2008-11-12 9 views
6

गैर-मैक प्लेटफॉर्म पर, मैं अपने एप्लिकेशन के लिए मूल मैक ओएस एक्स इंस्टॉलर कैसे बना सकता हूं?देशी मैक ओएस एक्स इंस्टॉलर (गैर-मैक प्लेटफार्म पर) कैसे बनाया जाए?

उदाहरण के लिए, मेरे पास एक विंडोज़ पीसी और जावा एप्लिकेशन है। मैं विंडोज़ पीसी को एक इंस्टॉलर (संभवतः एक .dmg संग्रह के अंदर) बनाना चाहता हूं जो ऐप्पल इंस्टॉलर के साथ काम करता है।

+1

आप * जानते हैं कि मैक उपयोगकर्ता इसे चलाने के लिए .jar फ़ाइल पर डबल-क्लिक कर सकते हैं, है ना? :-) –

+1

इस प्रश्न में मेरा उत्तर देखें: http: // stackoverflow।कॉम/प्रश्न/2323818/पैकेजमेकर-टू-मेक-मैक-पैकेज-ऑन-विंडोज-लिनक्स/8016507, जो इस का एक डुप्लिकेट है। – jcoffland

उत्तर

4

अब यह एक गैर मैक मंच पर एक देशी मैक ओएस एक्स इंस्टॉलर बनाने के लिए संभव है। लुई Gerbarg के रूप में, मुश्किल बिट बीओएम (बिल-ऑफ-सामग्री) फ़ाइल है। हालांकि mkbom (यूसुफ Coffland द्वारा osxbom कोड के आधार पर) का एक खुला स्रोत संस्करण पर उपलब्ध है:

http://hogliux.github.io/bomutils

वेबसाइट भी एक आसान बनाने एक मैक ओएस पर कदम दर कदम ट्यूटोरियल का पालन किया है लिनक्स पर एक्स इंस्टॉलर (http://hogliux.github.io/bomutils/tutorial.html)।

मेरी कंपनी नियमित रूप से इस विधि के साथ लिनक्स पर मैक ओएस एक्स इंस्टॉलर का निर्माण करती है और अब तक हमें कोई बड़ी समस्या नहीं है।

+0

इस विधि के प्रारंभिक परीक्षण और ट्यूटोरियल शानदार ढंग से काम कर रहा है! @ Hogliux आप के लिए हैट बंद करो। मैं ऐसी परिस्थिति में हूं जहां एक मैक इंस्टॉलर समझ में आता है क्योंकि मुझे पहले से इंस्टॉल किए गए एप्लिकेशन में फ़ाइलों को जोड़ने की ज़रूरत है, न केवल अपना खुद का इंस्टॉल करें। मैं स्वचालित सीआई बिल्ड भी चलाता हूं और एक छोटे से इंस्टॉलर के निर्माण के लिए बस एक पूरे मैक सर्वर को प्रावधान करता हूं। –

1

तो, कुछ त्वरित प्रश्न।

सबसे पहले, आप एक इंस्टॉलर क्यों चाहते हैं? अधिकांश मैक उपयोगकर्ता ऐसे ऐप पसंद करते हैं जो सिर्फ ड्रैग इंस्टॉल होते हैं। यदि आप मैक ओएस एक्स विशिष्ट कोड नहीं लिख रहे हैं तो कल्पना करना मुश्किल है कि आपको विशेष स्थानों, जैसे कि समर्थन समर्थन या लॉन्चडेमन्स में बिट्स रखने की आवश्यकता है। मान लीजिए कि आपके पास जो कुछ भी है, वह सिर्फ एक फ़ोल्डर में जाता है क्यों इंस्टॉलर के साथ परेशान है?

दूसरा, मैक पर मैक इंस्टॉलर बनाने में समस्या क्यों होगी? निश्चित रूप से आपके पास ऐप का परीक्षण करने के लिए मैकिंटोश है (आप इसे मैक पर परीक्षण किए बिना मैक के लिए अंधेरे से शिपिंग नहीं कर रहे हैं, है ना?)।

ठीक है, मानते हुए कि, यह मानते हुए कि आपके पास वास्तव में पीसी पर इसे बनाने का एक अच्छा कारण है, कुछ बिट्स हैं जो आसान नहीं होने जा रहे हैं। असल में एक .pkg टेक्स्ट स्क्रिप्ट्स, लोकलाइजेशन, एक संग्रह फ़ाइल (Archive.pax.gz) का एक समूह है, और सामग्री का एक बिल (Archive.bom) है।

बिल्डों के बीच ज्यादा बदलाव नहीं मानते हैं, तो आप इंस्टॉलर को मैक पर बना सकते हैं, और फिर बस बम और pax.gz का पुनर्निर्माण कर सकते हैं, उन्हें मौजूदा .pkg में बदल सकते हैं, और मेटाडेटा के कुछ टुकड़े बैच कर सकते हैं। पैक्स को निपटने के लिए काफी आसान होना चाहिए (पैक्स एक मानक संग्रह प्रारूप है), लेकिन बम फ़ाइल थोड़ा सा ट्रिकियर साबित हो सकती है, क्योंकि मुझे विश्वास नहीं है कि यह सार्वजनिक रूप से प्रलेखित है, और मुझे संदेह है कि उन्हें बनाने के लिए उपकरण (mkbom) हैं डार्विन का हिस्सा (ओपनसोर्स नहीं)। तो आपको बॉम फ़ाइल बनाने के लिए एक कस्टम टूल को समझने और लिखने की आवश्यकता होगी।

दूसरे शब्दों में, यह बड़ी मात्रा में काम होने की संभावना है।

+21

जब लोग जवाब देते हैं तो मैं वास्तव में इससे नफरत करता हूं "आप ऐसा क्यों करना चाहते हैं?" यह हर किसी के समय का अपशिष्ट है। – jcoffland

+2

एक वैध प्रश्न का अवमूल्यन करने की कोशिश करने के बजाय, इसे किसी भी उत्तर देने के लिए किसी को हतोत्साहित करने के बजाय इसे हल करने का प्रयास करें। –

+2

मैं असहमत हूं, इस तरह के "शैतान के वकील" उत्तरों से बहुत कुछ सीखना है। जब तक उत्तर हल की जा रही समस्या में अंतर्दृष्टिपूर्ण होता है, यह पूरी तरह से मान्य है। अक्सर जब कोई प्रश्न पूछते हैं तो हम नहीं जानते कि हमारे लिए कौन से विकल्प उपलब्ध हैं। – Mike

0

मैक पर ऐप इंस्टॉल करने का सामान्य तरीका ऐप को एप्लिकेशन फ़ोल्डर में खींचना है। अधिकांश कार्यक्रम एक डीएमजी के रूप में आते हैं जिसमें ऐप और एप्लिकेशन फ़ोल्डर के लिए एक प्रतीकात्मक लिंक होता है। आप इसे किसी अन्य तरीके से क्यों चाहेंगे? मैक को एक शानदार मैक एप्लिकेशन बनाने के लिए सोचने की ज़रूरत है! विशेष रूप से मैक उपयोगकर्ताओं के लिए देखो और महसूस करना बहुत महत्वपूर्ण है।

2

जैसा कि अन्य ने पहले से ही बताया है, आप वास्तव में इस समस्या का कड़ी समाधान ले रहे हैं, और आपके उपयोगकर्ता इसके लिए अपना नाम शाप देंगे, जब तक आपके पास वास्तव में ऐसा करने का अच्छा कारण न हो। यह सच है, कि कुछ प्रकार के अनुप्रयोगों को मैक ओएसएक्स के लिए इंस्टॉलर्स की आवश्यकता होगी। ये आम तौर पर शामिल हैं:

  • एप्लीकेशन जो स्थापित कस्टम ड्राइवरों (यानी, कर्नेल एक्सटेंशन)
  • एप्लीकेशन जो व्यवस्थाएं या अन्य संसाधनों जो किसी कारण से आवेदन बंडल के अंदर पैक नहीं किया जा सका स्थापित करने की आवश्यकता
  • एप्लीकेशन जो सिस्टम सेवा के रूप में चलाने की आवश्यकता है और इसलिए बूटअप
  • के दौरान ऐप लॉन्च करने के लिए कुछ पोस्ट-इंस्टॉल स्क्रिप्ट चलाने चाहिए, खराब लिखित प्रोग्राम जिन्हें उपयोगकर्ता के सिस्टम में कुछ प्रकार के परिवर्तन करने की आवश्यकता होती है (यानी, किसी फ़ोल्डर या किसी चीज़ पर अनुमतियां सेट करना) , और डेवलपर के हाथ विपणन विभाग डब्ल्यू द्वारा बंधे हैं सबसे दर्दनाक तरीके से आवेदन को वितरित करने के लिए eenies

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

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

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

-1

सब कुछ एक JAR फ़ाइल में रखें, इसे ज़िप में जोड़ें। किया हुआ।

लेकिन गंभीरता से, आप अपने आवेदन मैकिंटॉश उपयोगकर्ताओं को पहले परीक्षण किए बिना वितरित करना चाहते हैं? आप किस ग्रह पर हैं!?

+2

आप क्यों मानते हैं कि वह पैकेज का परीक्षण नहीं कर रहा है? आपके पास एक लिनक्स बिल्ड सर्वर हो सकता है जो संकुल बनाता है। बाद में ओएसएक्स पर परीक्षण से आपको कुछ भी रोक नहीं रहा है या आपकी ओएसएक्स परीक्षण टीम आपके लिए यह कर रही है। – jcoffland

2

विंडोज़ पर .dmg बनाना मुश्किल है, लेकिन यह निश्चित रूप से एक .app फ़ाइल संरचना बनाना संभव है जिसे आप ज़िप कर सकते हैं, जैसा कि अन्य ने टिप्पणी की है। ऐसे समय होते हैं जब एक नियमित .pkg इसे काट नहीं देगा और आप संवाद, पूर्व-स्थापना जांच आदि प्रदान करना चाहते हैं। आप BitRock installbuilder के साथ ऐसा कर सकते हैं, आप एक दूसरे से मैक, लिनक्स, विंडोज, सोलारिस के लिए इंस्टॉलर बना सकते हैं प्लेटफार्मों।

संबंधित मुद्दे