2011-01-26 11 views
5

बंडल के लिए आइकन कैसे सेट करें जो ऐप नहीं है? मैंने CFBundleIconFile का उपयोग करने का प्रयास किया, लेकिन यह काम नहीं करता है (हालांकि अगर मैं .app पर बंडल एक्सटेंशन बदलता हूं, तो आइकन वांछित में बदल जाता है)। क्या कोई और कुंजी है, या निर्देशिका के लिए आइकन सेट करने का एकमात्र तरीका है? यदि हां, तो क्या कमांड लाइन (एक्सकोड रन स्क्रिप्ट) से ऐसा करने के लिए पहले से ही कुछ स्क्रिप्ट है?गैर ऐप मैक ओएस एक्स बंडल का सेट आइकन

उत्तर

2

Visual documentation of the process of copying and pasting an icon in the Finder

आप CLI से यह करने के लिए की जरूरत है ... यह थोड़ा और अधिक शामिल है ...

सबसे पहले, आप अपने बंडल के

YourThing.bundle/Contents/Info.plist 
करने के लिए एक CFBundleIconFile स्ट्रिंग जोड़ने की जरूरत

यहां डेवलपर बंडल के लिए एक कस्टम आइकन निर्दिष्ट करता है। इस कुंजी में बंडल के संसाधन फ़ोल्डर में फ़ाइल का नाम शामिल है जो आइकन रखता है। TextEdit Edit.icns फ़ाइल, नामक फ़ाइल में आइकन रखता है लेकिन फ़ाइल के नाम नाम के बारे में कोई नियम नहीं है।

कहा कि, आप या तो एक ICNS फ़ाइल की जरूरत है, या कर सकते हैं follow these instructions इस Utility (which includes its source code) कि कमांड लाइन के माध्यम से ICNS छवि फ़ाइलों से की उत्पन्न करता है से ..

$ ./makeicns 

उपयोग: makeicns [k1 = v1 ] [k2 = वी 2] ...

कुंजी और मूल्यों में शामिल हैं: 512: इनपुट छवि का नाम आइकन 256 की 512x512 संस्करण के लिए: इनपुट छवि का नाम आइकन ०१२३५१६४१०६१ की 256x256 संस्करण के लिए128: आइकन के 128x128 संस्करण के लिए इनपुट छवि का नाम 32: आइकन के 32x32 संस्करण के लिए इनपुट छवि का नाम 16: आइकन आइकन के 16x16 संस्करण के लिए इनपुट छवि का नाम: सभी प्रकारों के लिए इनपुट छवि का नाम स्पष्ट नहीं है नाम आउट: आउटपुट फ़ाइल का नाम, पहले अरिक्त इनपुट नाम, लेकिन

उदाहरण icns विस्तार के साथ चूक:

makeicns -512 image.png -32 image.png 

केवल एक 512x512 और साथ image.icns बनाता है एक 32x32 संस्करण।

makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns 

आकार 512, 256, 128, और 16 डेटा वाली myfile.jpg से साथ और आकार 32 otherfile.png से डेटा युक्त outfile.icns बनाता है।

+0

मैं इस की जरूरत क्यों इस downvoted था कमांड लाइन – tig

1

Answer from similar (duplicate) question:

[[NSWorkspace sharedWorkspace] 
    setIcon:(NSImage *)image 
    forFile:(NSString *)bundlePath 
    options:0]; 
+0

से चलाने के लिए? यह काम नहीं करता है? @tig – Noitidart

+0

यह समाधान मेरे लिए काम करता था, हालांकि उसने फ़ाइल/सामग्री/संसाधन/एपिकॉन के अंदर फ़ाइल नहीं बदली।मेरे ऐप बंडल में icns'। यहां तक ​​कि यदि मैं पुनरारंभ करता हूं तो यह नया आइकन उपयोग करता है जिसे मैंने इसे सेट किया है, लेकिन मेरी पुरानी छवि संसाधन फ़ोल्डर में बनी हुई है, जिससे मुझे लगता है कि कुछ मुश्किल चीजें दूसरी तरफ जा रही हैं, फिर एक साधारण ताज़ा करें। क्या आप कृपया अपने विचारों को इस @yairchu – Noitidart

+1

@ नोइटिडार्ट पर साझा कर सकते हैं: मैंने इसे डुप्लिकेट प्रश्न (लिंक) में पाया जैसा मैंने उल्लेख किया था। "फ्रूटिटी गीक" ने वहां जवाब दिया और ऐप्पल के संदर्भ से लिंक किया, मेरे पास कोई और विवरण नहीं है .. – yairchu

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