2009-09-17 13 views
10

मेरे आईफोन ऐप में कई संसाधन हैं और जब वे संकलित हो जाते हैं तो वे एक्सकोड समूह संरचना के बावजूद ऐप में संसाधन फ़ोल्डर की जड़ में जोड़े जाते हैं। यह ज्यादातर चीजों के लिए ठीक है, हालांकि फाइलों का एक सेट है जिसे मुझे ऐप के संसाधन फ़ोल्डर में फ़ोल्डर में संरचित करने की आवश्यकता है।एक्सकोड बिल्डिंग और संसाधन फ़ोल्डर्स

फिलहाल, मैंने अपने फ़ोल्डर्स को "मौजूदा फाइलें जोड़ें ... -> जोड़े गए फ़ोल्डर के लिए फ़ोल्डर संदर्भ बनाएं" का उपयोग करके एक्सकोड में जोड़ा है। यह ठीक है और एक्सकोड में फ़ोल्डर आइकन पीले रंग के बजाय नीले हैं। मेरी समस्या यह है कि एक्सकोड उन फ़ोल्डर्स के भीतर नई और बदली गई फ़ाइलों को नहीं देख रहा है और इसलिए जब मैं अपनी परियोजना का निर्माण करता हूं, तो कोई भी नई या बदली गई छवियां लक्ष्य ऐप के संसाधनों में नहीं होती हैं। एकमात्र तरीका यह है कि मैं इसे काम करने के लिए प्राप्त कर सकता हूं, एक साफ करना है, और फिर निर्माण करना, जो काफी परेशान है क्योंकि मैं बदलाव कर रहा हूं और कभी-कभी एक बार कुछ बार संकलित कर सकता हूं!

मेरे संसाधनों में मेरी फ़ोल्डर संरचना जिसे मैं ऐप में रखना चाहता हूं, में कई नेस्टेड फ़ाइलें और फ़ोल्डर शामिल हैं।

क्या एक्सकोड को उन सभी फ़ाइलों और फ़ोल्डरों को पहचानने के लिए कुछ तरीका है जो बदल गए हैं या नए हैं?

धन्यवाद,

माइक

उत्तर

10

मेरे समस्या यह है कि Xcode देख और कोई नई बात नहीं है या उन फ़ोल्डरों के भीतर फ़ाइलों को बदल दिया और इसलिए जब मैं अपनी परियोजना का निर्माण करता हूं, तो लक्ष्य ऐप के संसाधनों में से कोई भी नई या बदली गई छवियां नहीं होती हैं।

यह एक लंबे समय से चलने वाली बग है; एडियम पर काम करते समय मुझे कई बार काट दिया गया है। कृपया इसे RadarWeb में दर्ज करें। और अनुस्मारक के लिए धन्यवाद; मैंने अपनी खुद की बग रिपोर्ट एक्स-रडार के रूप में दायर की है: // समस्या/723214 9 (visible to the public in OpenRadar)। आपको अपनी बग रिपोर्ट में अपनी बग संख्या का उल्लेख करना चाहिए।

वर्कअराउंड के रूप में, आप फ़ोल्डर संदर्भ पर राइट-क्लिक कर सकते हैं और फ़ोल्डर को बदलकर एक्सकोड को बताने के लिए "स्पर्श करें" चुनें।

+0

उस जानकारी के लिए धन्यवाद। मुझे विश्वास नहीं है कि उन्होंने इसे संबोधित नहीं किया है! मुझे यह भी पता चल रहा है कि फ़ोल्डरों को छूने से काम नहीं लगता है, शायद क्योंकि इसमें कुछ घोंसले शामिल हैं। –

+1

माइकल वाटरफॉल: हाँ; आपको अपने प्रोजेक्ट में जोड़े गए विशिष्ट फ़ोल्डर को स्पर्श करने की आवश्यकता है। किसी भी उपफोल्डर सहित इसमें कुछ भी छूना, काम नहीं करेगा (या कम से कम यह आखिरी बार मैंने कोशिश नहीं की थी, जो कुछ समय पहले था)। –

+0

मैं एक और कामकाज जोड़ना चाहता हूं। मैंने पीटर होसे के रूप में स्पर्श करने की कोशिश की, लेकिन मदद नहीं की। मैंने जो किया था वह फ़ोल्डर फ़ोल्डर से फ़ोल्डर की प्रतिलिपि बनाना था, हटाएं और पुराने फ़ोल्डर को कचरा करने के लिए स्थानांतरित करें, एक्सकोड को पुनरारंभ करें और फ़ोल्डरों को सामान्य रूप से फ़ोल्डर्स विकल्प के साथ कॉपी करने वाले फ़ोल्डर को जोड़ें। – Pacu

-1

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

संपादित करें: स्पष्टीकरण के बाद, ऐसा लगता है कि आपको शायद अपने प्रोजेक्ट में कुछ हेडर खोज पथ जोड़ने की आवश्यकता है। लक्ष्य जानकारी फलक खोलें, बिल्ड सेक्शन पर जाएं, और हेडर सर्च पथ सूची में अपने स्ट्रक्चर रूट फ़ोल्डर को जोड़ें। पुनरावर्ती जाँच करें और आप जाना चाहिए बेहतर

+0

समस्या फ़ोल्डर संदर्भों का उपयोग और परियोजना है कि जिस तरह से निर्माण के बिना फ़ोल्डर के बंडल में मौजूद नहीं है है। और यह वह इमारत है जिसमें मुझे समस्या है। बंडल में फ़ोल्डर्स को संभालना ठीक है। मुझे बस अपने प्रोजेक्ट की फाइलों में किसी भी नई फाइलों और फ़ोल्डरों को हर बिल्ड पर पहचानने के लिए एक्सकोड की आवश्यकता है ताकि यह उन्हें हर समय स्वच्छ और पुनर्निर्माण किए बिना लक्ष्य में संकलित कर सके। –

+0

मुझे लगता है कि आपको हेडर खोज पथ – coneybeare

+1

के साथ खेलना चाहिए शीर्षलेख खोज पथ # शामिल हैं, न कि संसाधनों के लिए। –

4

मैं आपकी पहली समस्या अपने आप को आज था और मैं इस महान लेख है, जो भी दूसरी समस्या के बारे में बोलते पाया: http://majicjungle.com/blog/?p=123

+0

महान लिंक के लिए धन्यवाद। मैंने स्क्रिप्ट का उपयोग करने की कोशिश की है लेकिन यह उप फ़ोल्डर्स में किसी भी फाइल को छूने लगती नहीं है। सबफॉल्डर में फ़ाइलों को दोबारा स्पर्श करने के लिए इसे कैसे प्राप्त किया जाए? –

3

मुझे अभी भी इस बग द्वारा काटा गया है। यहां दिए गए उत्तरों को बहुत मदद मिली थी।

मैं उपयोगी भी यह अन्य सूत्र में जवाब मिल गया, लेकिन मुझे यकीन है कि अगर यह वास्तव में क्या करने के लिए (यह एक नया AppId या कुछ उत्पन्न करने के लिए लगता है) एक सुरक्षित बात है नहीं कर रहा हूँ:

iphone simulator resources not updating

ये मेरे निजी नोट्स हैं जिन्हें मैंने इसे हल करने के लिए बनाया है।

1) Open the project in Xcode 
2) Right-click the folder reference (BLUE folder) in the navigator 
    at its root and pick "Remove Reference" 
3) Close Xcode all the way 
4a) Warning, this step might cause other problems in your project. 
4b) Open the folder browser/Finder 
4c) Navigate to: /users/USERNAME/Library/Application Support/ 
      /iPhone Simulator/version/Applications/THISPROJFOLDER 
4d) Delete this whole THISPROJFOLDER. The name of the folder may be all 
    numbers, but this clears the Xcode "Cache" so it will rebuild things 
5) Find the actual folder where you store your pictures that were referenced, 
    and move the folder elsewhere and rename it. 
6) Now open Xcode 
7) In Xcode, select Product -> Clean. It should clean successfully. 
8) Now run the program through Xcode. It should run, but (hopefully) crash or 
    otherwise fail because it doesn't detect the resource files you removed. 
9) Now go standard Xcode usage and add the files back to the folder you want, 
    and add a reference to that folder in the Xcode navigator. Run the program 
    again, and it should detect the UPDATED PDFfiles/Imagefiles. 

संपादित करें: ठीक है, मैं ऊपर पीटर Hosey की पोस्ट से "जवाब" निर्देशों का पालन किया है, और वह भी काम करता है। शायद मेरे समाधान से शायद बेहतर है, क्योंकि मेरा चरण 4 (आवश्यक) एक ऐप कुंजी या कुछ regen प्रतीत होता है।

तो यहाँ कैसे मैं पीटर के बाद निम्नलिखित Xcode 4.0 में यह तय हो गई है:

1) Open your project in Xcode 
2) Select the main project root item in the Navigator 
3) Select "Build Phases" in the main pane 
4) Select "Add Build Phase" button -> "Add Run Script" 
5) Reposition he "Run Script" entry bar in the screen, 
    and move it to just-before the Copy Bundle Resources area 
6) Edit the run-script you just added in the main pane: 
    : Set Shell to: /bin/sh (its the default, or try /bin/tsch) 
    : Set the script line to: touch -cm ${SRCROOT}/MyDocs 
    (Set it to your folder root area, matching the Blue Folder 
    area in your Navigator) 
7) Save it all and select "Product -> Clean" to clean project 
+0

कोई भी इसका उपयोग करते समय मदद करने में सक्षम है मुझे एक त्रुटि कह रही है ..../bin/sh /: खराब दुभाषिया: निर्देशिका नहीं – LmC

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