2013-09-24 18 views
6

के खिलाफ संकलित ऐप्स के लिए उपयोगकर्ता इंटरफ़ेस फ़ॉलबैक नहीं करेगा IOS6.1-sdk-compiled ऐप आईओएस 6.1 आईफोन 4, 4 एस & 5 डिवाइस पर ठीक चल रहा है। Ios7 iphone 5s पर ऐप चलाने पर उपयोगकर्ता इंटरफ़ेस अभी भी आईओएस 6 (ब्लैक बटन इत्यादि) जैसा दिखता है लेकिन हम इसमें से अधिकांश के साथ ठीक हैं, सिवाय इसके कि हमें एक बग मिला है। मैं अनुमान लगा रहा हूं क्योंकि आईओएस 7 पर एपीआई कार्यान्वयन में बदलाव।आईओएस 7 सिम्युलेटर आईओएस 6.1 एसडीके

जब हमारे ऐप को xcode 5 पर ios7-sdk के विरुद्ध संकलित किया जाता है तो सब कुछ अलग हो जाता है। यूआई वस्तुओं गलत संरेखित कर रहे हैं, लेबल के पढ़ा नहीं जा सकता आदि इसलिए हम 7.

Xcode 5 पर मैं स्थापित किया है ios 6.1 एसडीके by copying it from Xcode 4.6.3 dmg as described on this post और अद्यतन बेस ios6.1 एसडीके के खिलाफ हमारे कोड संकलन लेकिन ios पर उसे चलाना चाहते हैं बिल्ड सेटिंग्स पर आईओएस 6.1 के लिए एसडीके, हालांकि आईओएस 7 सिम्युलेटर पर ऐप चलाने पर उपयोगकर्ता इंटरफ़ेस आईओएस 6.1 पर वापस नहीं आ जाएगा। हालांकि आईओएस 6.1 पर वापस आ रहा है यदि ऐप का परीक्षण आईओएस 7 के भौतिक आईफोन के खिलाफ किया जाता है।

आईओएस 6-एसडीके-संकलित ऐप चलाने पर आईओएस 7 सिम्युलेटर वापस उपयोगकर्ता इंटरफ़ेस कैसे बना सकता है ताकि हम बग को पुन: पेश कर सकें सिम्युलेटर पर?

+0

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

उत्तर

4

धन्यवाद, लेकिन अभी तक सबसे अच्छा समाधान का xcode 4.6.3 का उपयोग कर रखने के लिए और xcode 4.6.3 में ios 7 सिम्युलेटर स्थापित करने के लिए है।

मैं (तब (xcode.app के ऊपर लिख देगा) app की दुकान से xcode 5 स्थापित xcode4.6.3.app में प्रति xcode.app) दोनों xcode 5 और कंधे से 4.6.3 ओर स्थापित करके वैसा ही किया, तो सिमलिंक

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

को

/Applications/Xcode4.6.3.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0.sdk

जब यह किया जाता है सुनिश्चित करें xcode नहीं खोल रहा है।यदि आप पहले ही 4.6.3 से 5 ओवरराइट कर चुके हैं तो आप https://developer.apple.com/downloads से 4.6.3 के डीएमजी डाउनलोड कर सकते हैं।

तो मैं डाल:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iOS Simulator.app

: मेरे गोदी पर (यानी xcode 5 सिम्युलेटर अनुप्रयोग के संस्करण)

जब ऐप का परीक्षण, मैं मैन्युअल रूप से गोदी से सिम्युलेटर शुरू करने के लिए किया था पहले और संबंधित डिवाइस संस्करण का चयन करें (हार्डवेयर पर जाएं -> डिवाइस -> आईफोन 3.5 "/ 4" - ios6/7 का चयन करें) क्योंकि xcode 4.6.3 स्वचालित रूप से ऐसा करने में सक्षम नहीं था (संभवतः संस्करण अंतर के कारण/क्योंकि मैंने नहीं किया xcode 5 सिम्युलेटर ऐप को 4.6.3 पर सिमलिंक नहीं करें)

लॉन्च करते समय, सुनिश्चित करें कि 'आईफोन 7.0 सिम्युलेटर' xcode 4.6.3 योजना पर चुना गया है। आईओएस 6.1-एसडीके संकलित ऐप फिर आईओएस 7 यूआई पर चलाते समय आईओएस 6.1 यूआई में वापस आ जाता है और मैं अपनी बग को पुन: उत्पन्न कर सकता हूं।

+0

आह - गेरीटन, तुम आदमी हो ... यह मेरे लिए काम करता है !! – steve

0

आपके द्वारा वर्णित उपस्थिति, मुझे डर है, शायद आईओएस 7 के लिए सही व्यवहार है। तालिका दृश्य सामग्री आकार अलग-अलग गणना की जाती है, उदाहरण के लिए (यह कई तत्वों की स्थिति बदल जाएगी) साथ ही कई अन्य परिवर्तन भी।

यदि आप अपनी आईओएस 6 उपस्थिति को बनाए रखना चाहते हैं, तो आपको एक्सकोड 4.6 के तहत संकलित करने की आवश्यकता होगी, 5 नहीं। आप इसे अभी भी आईओएस 7 के तहत चला सकते हैं, और वास्तव में आप आईओएस 7 डिवाइस को विकास के लिए दिखा सकते हैं इसे एक्सकोड 5 में अधिकृत करना और फिर एक्सकोड 4.6 पर वापस स्विच करना।

मेरा सुझाव है कि आप आईओएस 7 संगत यूआई को डिजाइन करने के बारे में सलाह के लिए ऐप्पल के iOS 7 Transition Guide को भी पढ़ लें।

+0

हां मेरी समस्या यह नहीं है कि उपस्थिति अभी भी पुरानी दिखती है, लेकिन भौतिक उपकरण का व्यवहार सिम्युलेटर के साथ अलग है। 6.1 एसडीके के साथ संकलित भौतिक डिवाइस ऐप्स में पुरानी उपस्थिति पर वापस आती है जबकि सिम्युलेटर में इसे नए रूप में प्रदर्शित किया जा रहा है और – gerrytan

+0

महसूस करता है यह एक्सकोड 5 AFAIK की एक संपत्ति है। यदि आप पुराने दिखना चाहते हैं, तो आपको पुराने टूल के साथ विकसित करना होगा - और यदि आप नए टूल्स चाहते हैं, तो आपको अपग्रेड करना होगा। क्षमा करें, शायद आप जो जवाब चाहते हैं वह नहीं - लेकिन पागल सिम्लिंक हैकिंग के बिना यह एकमात्र उत्तर है। संपादित करें: जो मुझे लगता है कि किसी ने विस्तृत किया है! – tooluser

0

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

+0

धन्यवाद मैंने यह सब किया है लेकिन मुझे अभी भी आईओएस 6 सिम्युलेटर नहीं मिल सकता है IOS 6 देखो और – gerrytan

4

यदि मैं आपकी समस्या को सही ढंग से समझता हूं ... मैं अपने ऐप के साथ एक ही समस्या में चल रहा हूं और आईओएस 6.1 इंटरफेस को रखने के लिए जरूरी है, जो एक्सकोड 5 में बनाया गया है और आईओएस 7 में चल रहा है। हमारे इंटरफ़ेस को भी गड़बड़ कर दिया गया था, गलत तरीके से और टूलबार गायब बटन थे। हम इसे बाद में 7 के लिए ठीक कर देंगे, लेकिन अभी समय नहीं है, लेकिन इसे आईओएस 7 पर चलाने की आवश्यकता है और अभी भी एक्सकोड 5 में बनाया जाना चाहिए।

तो यहाँ मैं क्या किया है: (मैं कुछ स्क्रीन शॉट्स पोस्ट करना चाहते हैं, लेकिन मेरे मैक काम नहीं है, बाद में मिल जाएगा, यदि आवश्यक)

  • मैं Xcode 4.6.3 स्थापित रखा एक्सकोड के साथ 5.
  • मैंने 6.1 एसडीके से एक्सकोड 5 स्थापना में सिम्लिंक जोड़ा। (मुझे उस पर एक SO सवाल मिला, एक लिंक मिलेगा) या आप इसे इंस्टॉल कर सकते हैं जैसा आपने किया था।

(इन अगले 2 विकल्प की जरूरत नहीं किया जा सकता, लेकिन हम उन्हें परीक्षण में उपयोग करते हुए समाप्त हो गया है, और यह काम करता है, यहां तक ​​कि नई 5 एस 64 बिट फोन)

  • सेटिंग बिल्ड में मैं चयनित निर्माण आर्किटेक्चर मानक, गैर -64 बिट armv7 विकल्प का उपयोग करने के लिए, "64 बिट सहित" विकल्प न चुनें।

  • एक ही जगह, आईओएस 6.1 करने के लिए केवल हाँ

फिर सक्रिय वास्तुकला का निर्माण ...

  • भी सेटिंग बिल्ड में

    , सेट बेस एसडीके। (मेरा मानना ​​है कि यह यह काम करने के लिए महत्वपूर्ण था)

  • एप्लिकेशन लक्ष्य के सामान्य टैब, (हमारा, 5.1 पर अब भी है अब के लिए)

  • हमारे स्टोरीबोर्ड उन में 6.1 तैनाती लक्ष्य निर्धारित करते हैं, चुनें File इंस्पेक्टर इंटरफेस बिल्डर सेक्शन में मैंने एक्सकोड 4.6 में खुलता है, और आईओएस 5.1 और बाद के लिए बनाता है, और आईओएस 6.1 और इससे पहले के रूप में देखते हैं। (मेरे autolayout हटाया गया है, हम उसका उपयोग नहीं करते)

"में खुलती" के लिए है कि अंतिम विकल्प के बारे में चेतावनी। यदि आप "एक्सकोड 4.6 में खुलते हैं" का चयन करते हैं, तो आप आईओएस 7 के लिए स्टोरीबोर्ड संपादन खो देंगे। मेरे मामले में, मुझे अब परवाह नहीं है, क्योंकि मैं इसे 4.6 विचारों में वैसे भी रहना चाहता हूं। बस आप उसे ध्यान में रखें। मुझे लगता है कि आप इसे वापस स्विच कर सकते हैं, लेकिन परीक्षण नहीं किया है।

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

कम से कम इस तरह से मैं का निर्माण और Xcode 5, तदर्थ में काम कर सकते हैं iOS7 उपयोगकर्ताओं के लिए ऐप्लिकेशन के वितरण, लेकिन iOS6 शैलियों, प्लेसमेंट और बटन बरकरार रखने के लिए। अब मैं आईओएस 7 शैलियों में संक्रमण करने में अधिक समय व्यतीत कर सकता हूं, लेकिन अभी भी बग को ठीक कर सकता हूं और ऐप को अपडेट कर सकता हूं जैसे कि यह आईओएस 6.1 था।

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

+0

महसूस करने के लिए यह मेरे लिए काम नहीं कर रहा है ... केवल एक चीज जो मैंने अलग की है symlink के बजाय 6.1 एसडीके की प्रतिलिपि बनाएँ। आप और कुछ भी सोच सकते हैं कि आपने किया था? – steve

+0

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

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