2012-06-10 13 views
18

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

  1. प्रोजेक्ट के रूट फ़ोल्डर के तहत Resources फ़ोल्डर बनाएं।
  2. Resources फ़ोल्डर को एक्सकोड में खींचें, जो फ़ोल्डर के लिए Group बनाता है।
  3. मेरी संसाधन फ़ाइलों को Finder से Resources फ़ोल्डर में एक्सकोड में खींचें।

और अब मैं देख सकता हूं कि सभी संसाधन फ़ाइलें Build Phrases ->Copy Bundle Resources में सूचीबद्ध हैं।

अजीब बात यह है कि [[NSBundle mainBundle] pathForResource:@"book" ofType:@"epub"] एक फ़ाइल पथ लौटाता है जो स्थित हो सकता है, जबकि [[NSBundle mainBundle] pathForResource:@"book" ofType:@"epub" inDirectory:@"Resources"](null) देता है।

CpResource MBookReader/Resources/book.epub /Users/neevek/Library/Developer/Xcode/DerivedData/workspace-fykuaikryknuhxgevcdtspkspptj/Build/Products/Debug-iphonesimulator/MBookReader.app/book.epub 
cd /Users/neevek/workspace/xcode_projects/MBookReader 
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks -strip-tool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/neevek/workspace/xcode_projects/MBookReader/MBookReader/Resources/book.epub /Users/neevek/Library/Developer/Xcode/DerivedData/workspace-fykuaikryknuhxgevcdtspkspptj/Build/Products/Debug-iphonesimulator/MBookReader.app 

जो दिखाता है कि Resources/book.epub फ़ाइल वास्तव में MBookReader.app/ (एप्लिकेशन बंडल की रूट निर्देशिका) में कॉपी किया जाता है:

Build Results विंडो से, मैं इस लाइन पर ध्यान दें।

अब Resources डिस्क में एक वास्तविक फ़ोल्डर है, फ़ोल्डर को कॉपी क्यों नहीं किया जाता है?

पीएस। मैं एक्सकोड 4.3.2 का उपयोग कर रहा हूँ।

+0

मैं जब अपने ऐप्स में "सहायता पुस्तक" फ़ाइलें रखने का यह एक ही समस्या में पड़ गए; उन्हें संसाधनों के तहत एक उपनिर्देशिका में होना चाहिए।एंड्रॉइड का जवाब भी मेरे लिए काम किया! – Marc

उत्तर

31

एक्सकोड में अपना संसाधन फ़ोल्डर जोड़ते समय, स्लाइडिंग विंडो में "किसी भी जोड़े गए फ़ोल्डर के लिए समूह बनाएं" के बजाय "फ़ोल्डर संदर्भ बनाएं" चुनें।

यही है, अपने प्रश्न में निम्नलिखित चरणों के साथ 3 चरणों को प्रतिस्थापित करें।

  1. प्रोजेक्ट की रूट निर्देशिका के तहत संसाधन निर्देशिका बनाएं। संसाधन निर्देशिका के अंदर अपनी निर्देशिका संरचना को व्यवस्थित करें जिस तरह से आप चाहते हैं।
  2. संसाधन निर्देशिका को एक्सकोड में खींचें और चुनें फ़ोल्डर संदर्भ विकल्प।

आप कर चुके हैं। एक्सकोड आपके संसाधन निर्देशिका की सामग्री को दोबारा बंडल में कॉपी करेगा।

जब आप संसाधन निर्देशिका के अंदर कहीं भी संशोधित फ़ाइल की प्रतिलिपि नहीं करते हैं तो आपको सड़क पर और समस्या हो सकती है। एक साफ निर्माण आमतौर पर इसे ठीक करता है। वैकल्पिक रूप से, आप इमारत से पहले .app फ़ाइल को हटा सकते हैं। यह असम्बद्ध स्रोत फ़ाइलों को पुनर्निर्माण के कारण नहीं देगा, लेकिन एक्सकोड को सभी संसाधनों को कॉपी करने के लिए मजबूर करेगा।

Sample Folder Reference

+1

कोई फर्क नहीं पड़ता कि यह वास्तविक निर्देशिका है या सिर्फ एक संदर्भ है, ऐसा लगता है कि सभी संसाधन फ़ाइलों को ऐप बंडल की मूल निर्देशिका में कॉपी किया जाएगा चाहे वे परियोजना के निर्माण के दौरान किस निर्देशिका में रहते हैं। – neevek

+0

@Neevek मैंने जवाब अपडेट किया है। –

+0

धन्यवाद @android, मैं आज रात इसे आजमाउंगा और आपको प्रतिक्रिया दूंगा। – neevek

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

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