2012-03-15 5 views
17

संभव डुप्लिकेट:
Programmatically detect if app is being run on device or simulatorकैसे पता लगाने के लिए एप्लिकेशन सिम्युलेटर या उपकरण पर चल रहे

मैं कैसे पता लगा सकते हैं मेरे ऐप सिम्युलेटर पर या कोड के माध्यम से डिवाइस पर चल रहा है या नहीं।

+2

यह देखा ?? http://stackoverflow.com/questions/5775420/programmatically-detect-if-app-is-being-run-on-device-or-simulator – Vin

+1

इतनी सारी पोस्टों का डुप्लिकेट: http://stackoverflow.com/questions/ 5122149/iphone-simulator-how-to-detect-when-app-is-running-on-simulator-so-can-setup, http://stackoverflow.com/questions/5775420/programmatically-detect-if-app- चल रहा है-डिवाइस-या-सिम्युलेटर, http://stackoverflow.com/questions/458304/how-can-i-programmatically-determine-if-my-app-is-running-in-the- iphone-simulato – Sarah

+1

@Fulvio क्षमा करें अगर यह कठोर लगता है। इस सवाल को SO पर बहुत कुछ पूछा गया है। क्या हम पोस्ट करने से पहले हमारे प्रश्न से संबंधित पहले से ही मौजूदा पोस्ट को खोजना नहीं चाहते हैं? – Vin

उत्तर

66

ध्यान रखें आपको पहले से ही डिवाइस के बारे में जानकारी प्रदान करता है।

[[UIDevice currentDevice] model]

आप निम्न का उपयोग कर सकते हैं:

TARGET_IPHONE_SIMULATOR आपको बताता है कि आप iPhone सिम्युलेटर में हैं।

TARGET_OS_IPHONE आपको बताता है कि आप मैकोज़ के बजाय आईफोन पर काम कर रहे हैं।

#if TARGET_IPHONE_SIMULATOR 

    NSLog(@"Running in Simulator - no app store or giro"); 

#else 

    NSLog(@"Running on the Device"); 

#endif 

और जब केवल डिवाइस

#if !(TARGET_IPHONE_SIMULATOR) 

    NSLog(@"Running on device"); 

#endif 
8

में रुचि रखते आप इस निरंतर

#if TARGET_OS_SIMULATOR 
    NSLog(@"This is simulator mode...."); 
#else 
    NSLog(@"This is device mode...."); 
#endif 
1

ही संकलित एप्लिकेशन कर सकते हैं का उपयोग कर सकते नहीं दोनों सिम्युलेटर और iOS उपकरण रन क्योंकि सीपीयू निर्देश सेट पूरी तरह से अलग हैं (x86 बनाम एआरएम)। (... जब तक आप लिपो का उपयोग करके बहुत ही अजीब सुपर-सार्वभौमिक बाइनरी का निर्माण नहीं कर रहे हैं)

यह निर्धारित करने के कई तरीके हैं कि ऐप को x86 के लिए संकलित किया गया था या नहीं। एक कई पूर्वनिर्धारित कंपाइलर प्रीप्रोसेसर मैक्रोज़ में से एक के आधार पर अलग-अलग रन टाइम कोड जोड़ना है। आप टर्मिनल कमांड लाइन पर टाइप करके x86 संकलन के लिए प्रीप्रोसेसर मैक्रोज़ की एक सूची प्राप्त कर सकते हैं:

gcc -arch i386 -dM -E - </dev/null | क्रमबद्ध करें

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