2009-06-19 14 views
6

मेरे पास एक मौजूदा प्रोजेक्ट है जिस पर मैं काम कर रहा था, और मैंने हाल ही में अपने आईफोन एसडीके को अपडेट करने और नवीनतम 3.0 एसडीके में अपडेट करने का फैसला किया है।आईफोन एसडीके 3.0 में अपग्रेड करें UIKit समस्याओं का कारण

मैं अपना एसडीके अपडेट करता हूं और अपना मौजूदा प्रोजेक्ट खोलने के लिए जाता हूं। निश्चित रूप से, कुछ प्रमाणपत्र समस्याएं सहित कुछ समस्याएं हैं और इसी तरह। वैसे भी, Google और मैं उनमें से अधिकांश को हल करने में सक्षम थे, लेकिन मुझे अपनी पिछली समस्याओं के बारे में उम्मीद करने की कोई उम्मीद नहीं थी।

जब सिम्युलेटर में मेरा कार्यक्रम चल रहा है, मैं अब मिल

dyld: लाइब्रेरी लोड नहीं: /System/Library/Frameworks/UIKit.framework/UIKit से संदर्भित /डेवलपर/iGameLib/iGameLib/निर्माण/डीबग-iphonesimulator/iGameLib.app/iGameLib कारण: छवि अब

नहीं मिला, मैं UIKit

के लिए ले जाया गया है की खोज की

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0sdk/ प्रणाली/पुस्तकालय/चौखटे/UIKit

और मुझे लगता है कि नए ढांचे स्थान को इंगित करने के लिए अपने लक्ष्य और परियोजना सेटिंग को अपडेट कर, लेकिन फिर भी जब मैं इसे बनाता हूं, कोई किस्मत नहीं।

मैंने सिम्युलेटर के अनुप्रयोगों और सेटिंग्स को साफ़ करने का भी प्रयास किया है, अभी भी कोई भाग्य नहीं है।

रेफरेंसिंग .app को "साफ" मेन्यूटम चलाने पर साफ़ किया गया है, मैंने इसकी पुष्टि की है, इसलिए मेरी प्रोजेक्ट सेटिंग्स में स्पष्ट रूप से कुछ पुराने यूआईकिट स्थान का उपयोग करने के लिए इंगित कर रहा है।

मुझे कहां दिखना चाहिए?

मैं जहां तक ​​मैं खुद की मदद करने के लिए जा सकता हूं, लेकिन मुझे डर है कि मैं यहां एक नुकसान में हूं। मैं इसे लक्ष्य सेटिंग्स, या प्रोजेक्ट सेटिंग्स, या प्लेस्ट, या मेरी प्रोजेक्ट के भीतर की किसी भी अन्य फाइल के तहत नहीं देखता हूं।

उत्तर

1

मुझे एक्सकोड के साथ कुछ ऐसी ही समस्याएं हैं जिनके बारे में कोई स्पष्ट कारण नहीं है। इस तथ्य का तथ्य यह है कि एक्सकोड में अभी भी वहां और वहां कीड़े हैं और कभी-कभी आप दीवार में भाग लेंगे।

मेरा अनुभव: अपनी स्थिति के लिए इसी तरह के कुछ हद तक, एक विशेष अवसर पर, एक Xcode प्रोजेक्ट मैं काम कर रहा था बस जो कुछ रहस्यमय कारण, और सफाई का कोई राशि के लिए निर्माण बंद कर दिया, googling या SO-आईएनजी मुझे कोई जवाब प्रदान की है। तो मैंने बस एक फ्रेश, नई परियोजना बनाई और नई परियोजना के रूप में मेरे भ्रष्ट परियोजना से स्रोत कोड भर दिया। नई परियोजना ने उसी स्रोत, पुस्तकालयों, संसाधनों, सेटिंग्स, दिमाग का उपयोग किया - और फिर भी यह कोई समस्या नहीं है। स्थानांतरण करने में लगभग 20-25 मिनट लग गए लेकिन इस बात पर विचार करते हुए कि मैंने एक बग को संबोधित करने के लिए कई घंटे खर्च किए हैं जो भ्रष्ट परियोजना में खुद को प्रकट नहीं करेंगे, यह समय इसके लायक था।

तो, मैं सुझाव देता हूं कि मैंने जो किया है: शायद एक नई परियोजना बनाने का प्रयास करें और अपने पुराने स्रोत और संसाधनों को स्थानांतरित करें।

गुड लक

+1

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

2
  1. अपने लक्ष्य सेटिंग्स की जाँच करें
    लक्ष्य में सुनिश्चित करें कि आप वास्तव में उन चौखटे के सभी लिंक कर रहे हैं सुनिश्चित करें ("पुस्तकालयों के साथ लिंक बाइनरी 'के तहत की जाँच)

  2. मेक सुनिश्चित करें कि आपने 3.0 एसडीके को अपने बेस एसडीके

  3. एक खाली प्रोजेक्ट बनाएं और अपनी ढांचे को पहले के रूप में जोड़ें; अगर आप अभी भी मुद्दे हैं, शायद एक borked एसडीके BTW

स्थापित करते हैं, आप, एसडीके चौखटे फिर से जोड़ नहीं करना चाहिए के रूप में पथ वर्तमान एसडीके के सापेक्ष हैं

बस मददगार बनने की कोशिश कर ... सुनिश्चित नहीं है कि मैं यहां से डीबग कर सकता हूं :)

+0

तो आप 3.0 एसडीके को अपने बेस एसडीके के रूप में बदलने के लिए कहां जाते हैं? मैं सोच रहा हूं कि किसी भी तरह की समस्या हो सकती है। यदि यह "सिम्युलेटर - 3.0 | डीबग" होने के लिए बिल्ड लक्ष्य को बदलने जैसा आसान है तो मैंने इसे पहले से ही कर लिया है। क्या आईफोन बेस एसडीके स्थान के लिए मुझे कोई और सेटिंग याद आ रही है? –

+1

परियोजना> परियोजना सेटिंग्स> सामान्य> बेस एसडीके संपादित करें। सुनिश्चित करें कि आपका विशेष लक्ष्य (प्रोजेक्ट> लक्ष्य सेटिंग्स संपादित करें> बिल्ड> बेस एसडीके) परियोजना सेटिंग्स को ओवरराइड नहीं कर रहा है जो अन्यथा सभी लक्ष्यों द्वारा साझा किया जाता है। – cdespinosa

4

ठीक है, तो मुझे जवाब है !!!

काफी सरलता से, एक्सकोड वास्तविक .xcodeproj फ़ाइल में सभी चर सही ढंग से नहीं बदल रहा है। तो, यहां दिए गए कदम हैं।

एक्सकोड से बाहर निकलें, आपको टर्मिनल पर यह काम करना होगा। टर्मिनल लाएं और अपनी परियोजना कहां जाएं। अपना .xcodeproj ढूंढें और इसमें जाएं जैसे कि यह एक निर्देशिका थी। यह खोजक में एक वास्तविक फ़ाइल की तरह दिखता है, लेकिन यह उन पैकेज निर्देशिकाओं में से एक है।

अब, मैं TextEdit मुझे इसे संपादित करने के लिए अनुमति देने के लिए नहीं मिल सका है, लेकिन आप, नैनो में जा सकते हैं तो जैसे मैं

sudo नैनो project.pbxproj मेरी .xcodeproj फ़ाइल/फ़ोल्डर/पैकेज के अंतर्गत है किया /जो कुछ।

इस फ़ाइल में, आपको यह पता होना चाहिए कि SDKROOT कहां सेट है। संभावना है कि कुछ संदर्भ दिए गए हैं, लेकिन आप SDKROOT = iphoneos2.2.1 या कुछ इसी तरह की तलाश में हैं। इन सभी को बदलें (कुछ हैं) SDKROOT = iphoneos3.0

अब, आप वहां आधे रास्ते हैं। ctrl x करें और फ़ाइल को सहेजें। इसके बाद आप ls करने जा रहे हैं और पता लगाएं कि .pbxuser फ़ाइल क्या है। मेरा myname.pbxuser है।

sudo नैनो myname.pbxuser

का एक ही आदेश चला इस फाइल में, वहाँ 2.1 iPhone SDK निर्देशिका के लिए संदर्भ की एक बड़ी संख्या है। IPhoneSimulatorOLDVERSION.sdk की खोज/प्रतिस्थापन करें, मेरे मामले में यह iPhoneSimulator2.1.sdk था और 2.1 से 3.0 को बदलें। हालांकि इसके साथ बहुत सावधान रहें, मैं नहीं जानना चाहता कि जब आप इस फ़ाइल को गड़बड़ करते हैं तो क्या होता है।

इसे सहेजें और एक्सकोड खोलें। परियोजना को साफ करें और बनाएं और चलाएं। Presto!

+0

जैच का समाधान सही उत्तर है। मुझे कहना होगा, मुझे आश्चर्य है कि नए प्रतिक्रियाएं जो कि एक नई परियोजना बनाने के लिए कहती हैं, वोट अधिक होती है। – pr1001

+1

आपको ऐसा करने की आवश्यकता नहीं है (वास्तव में, आपके प्रोजेक्ट में एसडीके-विशिष्ट पथों की "बड़ी संख्या" नहीं होनी चाहिए)। केवल एक चीज आपको करने की आवश्यकता है परियोजना> परियोजना सेटिंग्स> सामान्य संपादित करें और वहां से नया एसडीके चुनें। यदि आपके प्रोजेक्ट में अन्य एसडीके-विशिष्ट पथ हैं, तो क्या आपने मौजूदा प्रोजेक्ट को मौजूदा फ्रेमवर्क शीट के साथ चुनने के बजाय सीधे अपने प्रोजेक्ट में फ्रेमवर्क खींच लिया है? यदि ऐसा है, तो अपने लक्ष्य में अपने "फ्रेमवर्क खोज पथ" की जांच करें और वहां मौजूद एसडीके-विशिष्ट पथ हटाएं। – cdespinosa

0

मुझे एक्सकोड 3.2.1 का उपयोग करने में एक ही समस्या थी, लेकिन इसे एक आसान तरीके से हल किया गया था। मुझे एहसास हुआ कि मैंने हाल ही में अपने लक्ष्य के पर्यावरण चर को अक्षम कर दिया है, विशेष रूप से स्मृति मेबगिंग (NSDebugEnabled, NSZombieEnabled, NSAutoreleaseFreedObjectCheckEnabled, MallocStackLogging, MallocStackLoggingNoCompact) के साथ करने के लिए। ऐप पर्यावरण चर को हटाने के बाद सिम्युलेटर में एक बार भाग गया लेकिन उसके बाद कभी नहीं।

एक्सकोड छोड़कर, सिम्युलेटर, एक्सकोड को पुनरारंभ करना और लक्ष्य की पूरी तरह से साफ करना (इसकी निर्भरता सहित) मुझे वापस एक अच्छी स्थिति में लाया।

1

मैंने अभी 'फ्रेमवर्क' फ़ोल्डर से UIKit.framework को हटा दिया है, राइट-क्लिक किया है और इसे दोबारा जोड़ा है। स्वच्छ निर्माण, और कोई समस्या नहीं ..

+0

मैं एक ही मुद्दे में भाग गया, और यह भी मैंने इसे कैसे तय किया। एक्सकोड गलत निर्देशिका में फ्रेमवर्क खोजने की कोशिश कर रहा था, इसलिए इसे फिर से जोड़ने से एक्सकोड उचित पथ दिया गया। –

0

डीबगिंग के बिना मेरा एप्लिकेशन लॉन्च करते समय वही समस्या। मेरे अनुभव में उत्पादित बाइनरी अपराधी प्रतीत नहीं होता है।

मैंने एक्सकोड विज़ार्ड से एक ऐप बनाया है जो सिम्युलेटर में ठीक लॉन्च करता है (चलिए इसे टेस्ट ऐप कहते हैं, मेरे एप्लिकेशन को मेरा ऐप कहा जाता है), मैंने यह पता लगाने की कोशिश की कि मेरे ऐप के साथ अंतर कहां है।

otool -L myApp चौखटे करने के लिए सही (संबंधित पथ), TestApp रूप में एक ही

ps -E DYLD_ROOT_PATH, DYLD_FALLBACK_FRAMEWORK_PATH, DYLD_FRAMEWORK_PATH, DYLD_LIBRARY_PATH वातावरण चर ld द्वारा आवश्यक ढांचा पता लगाने के लिए मूल्यों की तुलना MyApp के लिए ठीक हैं देता है परीक्षण चर लॉन्च होने पर इन चरों में से

मुझे संदेह है कि यह समस्या XCode और सिम्युलेटर के बीच संचार में कहीं भी है, जब ऐप लॉन्च हो जाए ... altough मुझे यह नहीं पता कि क्या गलत है ...

समाधान है कि काम (कम से कम मेरे लिए) निश्चित रूप से कुछ बड़े दुष्प्रभाव हो लेकिन यहाँ यह है: पैकेज की सामग्री ब्राउज़ xcode छोड़ने संशोधन के लिए myApp.xcodeproj अनलॉक .model1v3 और .pbxuser (लॉक जानकारी पैनल (cmd-मैं फ़ाइल पर)) में हटाना इन दो फ़ाइलों xcode शुरू और वहाँ से

10

मैं एक ही त्रुटि हो रही थी

dyld अपने आवेदन शुरू करने के लिए पुन: प्रयास: लाइब्रेरी लोड नहीं:/सिस्टम/लाइब्रेरी/फ्रेमवर्क/UIKit.framework/UIKit

मेरे मामले पर समाधान बस एक्सकोड छोड़ दिया गया था और पुनः प्रयास करें।

+0

यह मेरे लिए भी काम किया। –

+0

बहुत बढ़िया, कभी भी इसके बारे में सोचा नहीं। लेकिन यह काम किया! –

+3

काम किया! ऐप्पल ने माइक्रोसॉफ्ट को एक्सकोड का नया संस्करण बनाने के लिए क्यों किराए पर लिया? – ma11hew28

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