IPhone सिम्युलेटर में स्थान सेट करें


124

आईफोन सिम्युलेटर में मैं स्थान कैसे सेट कर सकता हूं (जैसा कि कोरलोकेशन सेवाओं में उठाया गया है)।


मैंने Xcode 6 के लिए एक विधि जोड़ी। stackoverflow.com/questions/19694205/…
Ohmy

किसी को भी प्रतिक्रिया देशी, सिम्युलेटर में काम करने के लिए इसे प्राप्त करने में कामयाब रहा है?
निकोस

IOS 13 बीटा 2 के साथ, मैं केवल "कोई नहीं" और "कस्टम" विकल्प देख सकता था। क्या किसी और को भी यह समस्या है? stackoverflow.com/q/56733625/1364053
nr5

जवाबों:


122

आईओएस 5 के रूप में, सिम्युलेटर में एक विन्यास योग्य स्थान है।

डीबग मेनू के तहत, अंतिम प्रविष्टि "स्थान" है; यह आपको एक उप मेनू देता है:

  • कोई नहीं
  • कस्टम स्थान
  • Apple स्टोर
  • सेब
  • सिटी साइकिल की सवारी
  • सिटी रन
  • फ्रीवे ड्राइव

कस्टम स्थान आपको एक Lat / Long मान दर्ज करने देता है। साइकिल की सवारी, सिटी रन, और फ्रीवे ड्राइव एक चलती जगह का अनुकरण है (क्यूपर्टिनो में, निश्चित रूप से)।

बेशक, यह आईओएस 4 (या पहले) के लिए डिबगिंग में मदद करने के लिए कुछ भी नहीं करता है; लेकिन यह एक निश्चित सुधार है!


कहां IOS सिम्युलेटर में डिबग मेनू है?
लकी_गर्ल

1
यह काम करता है, लेकिन यह सिम्युलेटर पर डीबग मेनू के लिए है न कि एक्सकोड पर
लांस सामरिया

2
IOS सिम्युलेटर के लिए, यह अब "फ़ीचर" के तहत स्थित है
जे। सॉ

85
  1. IPhone सिम्युलेटर में प्रोजेक्ट चलाएं
  2. निम्नलिखित फ़ाइल में TextEdit फ़ाइल बनाएँ, उदाहरण के लिए इसे MyOffice कहें। .Gpx के रूप में एक्सटेंशन करें यहाँ छवि विवरण दर्ज करें

    <?xml version="1.0"?> <gpx version="1.0" creator="MyName"> <wpt lat="53.936166" lon="27.565370"> <name>MyOffice</name> </wpt> </gpx>

  3. Simulate एरिया में Xcode में सेलेक्ट करें Add GPX File to Project...यहाँ छवि विवरण दर्ज करें

  4. मेनू से प्रोजेक्ट के लिए बनाई गई फ़ाइल जोड़ें।
  5. अब आप सिमूलेट क्षेत्र में अपना स्थान देख सकते हैं:यहाँ छवि विवरण दर्ज करें

TextEdit फ़ाइल .gpx को सहेजता नहीं है। मैं कैसे करूं?

2
इसे .txt (या .xml) के रूप में सहेजें और फिर .gpx का नाम बदलें
beryllium

7
धन्यवाद! बहुत आसान है, महान काम करता है। यदि कोई अन्य व्यक्ति इस GPES फ़ाइल के नमूने का पाठ में उपयोग करता है तो आप इसे कॉपी और पेस्ट कर सकते हैं: <? Xml संस्करण "" 1.0 "?> <Gpx संस्करण =" 1.0 "निर्माता =" नाम "> <wpt lat =" लोन = ""> <नाम> कार्यालय </ नाम> </ wpt> </ gpx>
रयान जी

1
आपने मेरा दिन "+1" बचाया।
SAHIL

3
क्या हम इसमें समय शामिल कर सकते हैं? मैं startMonitoringSignificantLocationChanges विधि का परीक्षण करना चाहते
दुर्गाप्रसाद

17

मेरे प्रतिनिधि कॉलबैक में, मैं यह देखने के लिए जांच करता हूं कि क्या मैं एक सिम्युलेटर में चल रहा हूं ( #if TARGET_ IPHONE_SIMULATOR) और यदि ऐसा है, तो मैं अपना, पूर्व-देखा हुआ, लाट / लॉन्ग की आपूर्ति करता हूं। मेरी जानकारी के लिए, कोई दूसरा रास्ता नहीं है।


3
Xcode 4.2 के साथ शुरू, अब एंट्री Debugका उपयोग करके सिम्युलेटर पर मेनू के तहत एक रास्ता है Locationजो एक कस्टम स्थान सेट करने या कुछ पूर्वनिर्धारित सवारी और स्थानों से चयन करने की अनुमति देता है।
प्रोगामर

17

iOS सिम्युलेटर मेनू में, डीबग -> स्थान -> कस्टम स्थान पर जाएं। वहां आप अक्षांश और देशांतर सेट कर सकते हैं और तदनुसार एप्लिकेशन का परीक्षण कर सकते हैं। यह Mapkit के साथ और CLLocationManager के साथ भी काम करता है।


10

XCode 11.3 और पूर्व:

Debug -> Location -> Custom Location

यहाँ छवि विवरण दर्ज करें

XCode 11.4+:

Features -> Location -> Custom Location

यहाँ छवि विवरण दर्ज करें

यह जानने के लिए कि आपके पास कौन सा XCode संस्करण है

$ /usr/bin/xcodebuild -version

5

पूर्व आईओएस 5 आप इसे कोड में कर सकते हैं:

मैं इस स्निपेट का उपयोग @implementationउस कक्षा से ठीक पहले करता हूं, जहां मुझे अपने नकली शीर्षक और स्थान डेटा की आवश्यकता होती है।

#if (TARGET_IPHONE_SIMULATOR)
@interface MyHeading : CLHeading
    -(CLLocationDirection) magneticHeading;
    -(CLLocationDirection) trueHeading;
@end

@implementation MyHeading
    -(CLLocationDirection) magneticHeading { return 90; }
    -(CLLocationDirection) trueHeading { return 91; }
@end

@implementation CLLocationManager (TemporaryLocationFix)
- (void)locationFix {
    CLLocation *location = [[CLLocation alloc] initWithLatitude:55.932 longitude:12.321];
    [[self delegate] locationManager:self didUpdateToLocation:location fromLocation:nil];

    id heading  = [[MyHeading alloc] init];
    [[self delegate] locationManager:self didUpdateHeading: heading];
}

-(void)startUpdatingHeading {
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1];
}

- (void)startUpdatingLocation {
    [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1];
}
@end
#endif

IOS 5 के बाद अपनी परियोजना में एक GPX फ़ाइल को इस तरह शामिल करें कि स्थान को लगातार अपडेट किया जा सके Hillerød.gpx:

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="55.93619760" lon="12.29131930"></wpt>
    <wpt lat="55.93625770" lon="12.29108330"></wpt>
    <wpt lat="55.93631780" lon="12.29078290"></wpt>
    <wpt lat="55.93642600" lon="12.29041810"></wpt>
    <wpt lat="55.93653420" lon="12.28998890"></wpt>
    <wpt lat="55.93660630" lon="12.28966710"></wpt>
    <wpt lat="55.93670240" lon="12.28936670"></wpt>
    <wpt lat="55.93677450" lon="12.28921650"></wpt>
    <wpt lat="55.93709900" lon="12.28945250"></wpt>
    <wpt lat="55.93747160" lon="12.28949540"></wpt>
    <wpt lat="55.93770000" lon="12.28966710"></wpt>
    <wpt lat="55.93785620" lon="12.28977440"></wpt>
    <wpt lat="55.93809660" lon="12.28988170"></wpt>
    <wpt lat="55.93832490" lon="12.28994600"></wpt>
    <wpt lat="55.93845710" lon="12.28996750"></wpt>
    <wpt lat="55.93856530" lon="12.29007480"></wpt>
    <wpt lat="55.93872150" lon="12.29013910"></wpt>
    <wpt lat="55.93886570" lon="12.28975290"></wpt>
    <wpt lat="55.93898590" lon="12.28955980"></wpt>
    <wpt lat="55.93910610" lon="12.28919500"></wpt>
    <wpt lat="55.93861330" lon="12.28883020"></wpt>
    <wpt lat="55.93845710" lon="12.28868000"></wpt>
    <wpt lat="55.93827680" lon="12.28850840"></wpt>
    <wpt lat="55.93809660" lon="12.28842250"></wpt>
    <wpt lat="55.93796440" lon="12.28831520"></wpt>
    <wpt lat="55.93780810" lon="12.28810070"></wpt>
    <wpt lat="55.93755570" lon="12.28790760"></wpt>
    <wpt lat="55.93739950" lon="12.28775730"></wpt>
    <wpt lat="55.93726730" lon="12.28767150"></wpt>
    <wpt lat="55.93707500" lon="12.28760710"></wpt>
    <wpt lat="55.93690670" lon="12.28734970"></wpt>
    <wpt lat="55.93675050" lon="12.28726380"></wpt>
    <wpt lat="55.93649810" lon="12.28713510"></wpt>
    <wpt lat="55.93625770" lon="12.28687760"></wpt>
    <wpt lat="55.93596930" lon="12.28679180"></wpt>
    <wpt lat="55.93587310" lon="12.28719940"></wpt>
    <wpt lat="55.93575290" lon="12.28752130"></wpt>
    <wpt lat="55.93564480" lon="12.28797190"></wpt>
    <wpt lat="55.93554860" lon="12.28833670"></wpt>
    <wpt lat="55.93550050" lon="12.28868000"></wpt>
    <wpt lat="55.93535630" lon="12.28900190"></wpt>
    <wpt lat="55.93515200" lon="12.28936670"></wpt>
    <wpt lat="55.93505580" lon="12.28958120"></wpt>
    <wpt lat="55.93481550" lon="12.29001040"></wpt>
    <wpt lat="55.93468320" lon="12.29033230"></wpt>
    <wpt lat="55.93452700" lon="12.29063270"></wpt>
    <wpt lat="55.93438280" lon="12.29095450"></wpt>
    <wpt lat="55.93425050" lon="12.29121200"></wpt>
    <wpt lat="55.93413040" lon="12.29140520"></wpt>
    <wpt lat="55.93401020" lon="12.29168410"></wpt>
    <wpt lat="55.93389000" lon="12.29189870"></wpt>
    <wpt lat="55.93372170" lon="12.29239220"></wpt>
    <wpt lat="55.93385390" lon="12.29258530"></wpt>
    <wpt lat="55.93409430" lon="12.29295010"></wpt>
    <wpt lat="55.93421450" lon="12.29320760"></wpt>
    <wpt lat="55.93433470" lon="12.29333630"></wpt>
    <wpt lat="55.93445490" lon="12.29350800"></wpt>
    <wpt lat="55.93463520" lon="12.29374400"></wpt>
    <wpt lat="55.93479140" lon="12.29410880"></wpt>
    <wpt lat="55.93491160" lon="12.29419460"></wpt>
    <wpt lat="55.93515200" lon="12.29458090"></wpt>
    <wpt lat="55.93545250" lon="12.29494570"></wpt>
    <wpt lat="55.93571690" lon="12.29505300"></wpt>
    <wpt lat="55.93593320" lon="12.29513880"></wpt>
    <wpt lat="55.93617360" lon="12.29522460"></wpt>
    <wpt lat="55.93622170" lon="12.29537480"></wpt>
    <wpt lat="55.93713510" lon="12.29505300"></wpt>
    <wpt lat="55.93776000" lon="12.29378700"></wpt>
    <wpt lat="55.93904600" lon="12.29531040"></wpt>
    <wpt lat="55.94004350" lon="12.29552500"></wpt>
    <wpt lat="55.94023570" lon="12.29561090"></wpt>
    <wpt lat="55.94019970" lon="12.29591130"></wpt>
    <wpt lat="55.94017560" lon="12.29629750"></wpt>
    <wpt lat="55.94017560" lon="12.29670520"></wpt>
    <wpt lat="55.94017560" lon="12.29713430"></wpt>
    <wpt lat="55.94019970" lon="12.29754200"></wpt>
    <wpt lat="55.94024780" lon="12.29816430"></wpt>
    <wpt lat="55.94051210" lon="12.29842180"></wpt>
    <wpt lat="55.94084860" lon="12.29820720"></wpt>
    <wpt lat="55.94105290" lon="12.29799270"></wpt>
    <wpt lat="55.94123320" lon="12.29777810"></wpt>
    <wpt lat="55.94140140" lon="12.29749910"></wpt>
    <wpt lat="55.94142550" lon="12.29726310"></wpt>
    <wpt lat="55.94147350" lon="12.29687690"></wpt>
    <wpt lat="55.94155760" lon="12.29619020"></wpt>
    <wpt lat="55.94161770" lon="12.29576110"></wpt>
    <wpt lat="55.94148550" lon="12.29531040"></wpt>
    <wpt lat="55.94093270" lon="12.29522460"></wpt>
    <wpt lat="55.94041600" lon="12.29518170"></wpt>
    <wpt lat="55.94056020" lon="12.29398010"></wpt>
    <wpt lat="55.94024780" lon="12.29352950"></wpt>
    <wpt lat="55.94001940" lon="12.29335780"></wpt>
    <wpt lat="55.93992330" lon="12.29325050"></wpt>
    <wpt lat="55.93969490" lon="12.29299300"></wpt>
    <wpt lat="55.93952670" lon="12.29277840"></wpt>
    <wpt lat="55.93928630" lon="12.29260680"></wpt>
    <wpt lat="55.93915410" lon="12.29232780"></wpt>
    <wpt lat="55.93928630" lon="12.29202740"></wpt>
    <wpt lat="55.93933440" lon="12.29174850"></wpt>
    <wpt lat="55.93947860" lon="12.29116910"></wpt>
    <wpt lat="55.93965890" lon="12.29095450"></wpt>
    <wpt lat="55.94001940" lon="12.29061120"></wpt>
    <wpt lat="55.94041600" lon="12.29084730"></wpt>
    <wpt lat="55.94076450" lon="12.29101890"></wpt>
    <wpt lat="55.94080060" lon="12.29065410"></wpt>
    <wpt lat="55.94086060" lon="12.29031080"></wpt>
    <wpt lat="55.94092070" lon="12.28990310"></wpt>
    <wpt lat="55.94099280" lon="12.28975290"></wpt>
    <wpt lat="55.94119710" lon="12.28986020"></wpt>
    <wpt lat="55.94134130" lon="12.28998890"></wpt>
    <wpt lat="55.94147350" lon="12.29007480"></wpt>
    <wpt lat="55.94166580" lon="12.29003190"></wpt>
    <wpt lat="55.94176190" lon="12.28938810"></wpt>
    <wpt lat="55.94183400" lon="12.28893750"></wpt>
    <wpt lat="55.94194220" lon="12.28850840"></wpt>
    <wpt lat="55.94199030" lon="12.28835820"></wpt>
    <wpt lat="55.94215850" lon="12.28859420"></wpt>
    <wpt lat="55.94250700" lon="12.28883020"></wpt>
    <wpt lat="55.94267520" lon="12.28893750"></wpt>
    <wpt lat="55.94284350" lon="12.28902330"></wpt>
    <wpt lat="55.94304770" lon="12.28915210"></wpt>
    <wpt lat="55.94325200" lon="12.28925940"></wpt>
    <wpt lat="55.94348030" lon="12.28953830"></wpt>
    <wpt lat="55.94366060" lon="12.28966710"></wpt>
    <wpt lat="55.94388890" lon="12.28975290"></wpt>
    <wpt lat="55.94399700" lon="12.28994600"></wpt>
    <wpt lat="55.94379280" lon="12.29065410"></wpt>
    <wpt lat="55.94364860" lon="12.29095450"></wpt>
    <wpt lat="55.94350440" lon="12.29127640"></wpt>
    <wpt lat="55.94340820" lon="12.29155540"></wpt>
    <wpt lat="55.94331210" lon="12.29198450"></wpt>
    <wpt lat="55.94315590" lon="12.29269260"></wpt>
    <wpt lat="55.94310780" lon="12.29318610"></wpt>
    <wpt lat="55.94301170" lon="12.29361530"></wpt>
    <wpt lat="55.94292760" lon="12.29408740"></wpt>
    <wpt lat="55.94290350" lon="12.29436630"></wpt>
    <wpt lat="55.94287950" lon="12.29453800"></wpt>
    <wpt lat="55.94283140" lon="12.29533190"></wpt>
    <wpt lat="55.94274730" lon="12.29606150"></wpt>
    <wpt lat="55.94278340" lon="12.29621170"></wpt>
    <wpt lat="55.94280740" lon="12.29649060"></wpt>
    <wpt lat="55.94284350" lon="12.29679100"></wpt>
    <wpt lat="55.94284350" lon="12.29734890"></wpt>
    <wpt lat="55.94308380" lon="12.29837890"></wpt>
    <wpt lat="55.94315590" lon="12.29852910"></wpt>
    <wpt lat="55.94263920" lon="12.29906550"></wpt>
    <wpt lat="55.94237480" lon="12.29910850"></wpt>
    <wpt lat="55.94220660" lon="12.29915140"></wpt>
    <wpt lat="55.94208640" lon="12.29902260"></wpt>
    <wpt lat="55.94196620" lon="12.29887240"></wpt>
    <wpt lat="55.94176190" lon="12.29794970"></wpt>
    <wpt lat="55.94156970" lon="12.29760640"></wpt>
</gpx>

मैं GPSies.com का उपयोग करता हूं gpx डेटा के लिए आधार फ़ाइल बनाने के का । हालांकि थोड़ी सफाई की आवश्यकता है।

सिम्युलेटर चलाकर और अपनी फ़ाइल चुनकर सक्रिय करें


(स्रोत: castleandersen.dk )


4

डीबग मेनू -> स्थान -> से iOS सिम्युलेटर एप्लिकेशन खोलें

  1. कोई नहीं
  2. कस्टम स्थान
  3. Apple स्टोर ...

4

आप आसानी से MacOS मैप्स एप्लिकेशन से Xcode सिम्युलेटर में किसी भी वांछित स्थान को साझा कर सकते हैं ।

  1. Xcode से सिम्युलेटर में एप्लिकेशन को चलाएं जैसा कि आप आमतौर पर करते हैं।
  2. MacOS पर मैप एप्लिकेशन खोलें (सुविधा के लिए मैं आमतौर पर एक नया डेस्कटॉप बनाता हूं जहां मेरे पास सिम्युलेटर और मैप एप्लिकेशन दोनों हैं)।
  3. मैप्स (macOS) के अंदर, मैप पर किसी भी बिंदु पर लंबे समय तक क्लिक करें, या उस स्थान की तलाश करें जहां मैप को एक पिन खींचने की आवश्यकता हो।
  4. पिन पर क्लिक करें, फिर सूचना (i) आइकन ( छवि देखें ) पर।
  5. सूचना देखने के ऊपर दाईं ओर शेयर आइकन पर क्लिक करें।
  6. सिम्युलेटर के साथ स्थान साझा करें ( छवि देखें )।
  7. पुष्टि करें और आनंद लें :)

यह आपको कुछ स्थानों को जल्दी से परीक्षण करने देता है, जहां भौगोलिक रूप से स्थान (जैसे जियोफेंसिंग के परीक्षण के लिए) पर एक समझ होती है, और रनटाइम पर निर्णय लेते हैं कि आगे कहां जाना है (उदाहरण के लिए डिबगिंग और फाइन-ट्यूनिंग सामान)।

मैकओएस कैटालिना 10.15.4 और एक्सकोड 11.4 पर यह परीक्षण किया गया।


3

पर तरह लोगों FutureTap पर मुक्त करने के लिए FTLocationSimulator उपलब्ध कराया है GitHub । यह आपको उदाहरण के लिए Google धरती का उपयोग करके एक परीक्षण मार्ग तैयार करने की अनुमति देता है, और फिर सिम्युलेटर को आपके ऐप पर इन निर्देशांक को फ़ीड करता है।

मैंने स्थान सुविधाओं के परीक्षण के दौरान आसानी से कई मार्गों के बीच स्विच करने के लिए FTLocationSimulator का उपयोग करने के बारे में एक ब्लॉग पोस्ट लिखा है।


3

आप अपने प्रोजेक्ट में gpx फाइलें जोड़ सकते हैं और इसका उपयोग कर सकते हैं:
स्कीम संपादित करें> विकल्प> स्थान सिमुलेशन की अनुमति दें> उदाहरण के लिए फ़ाइल नाम चुनें:

<?xml version="1.0"?>
<gpx version="1.1" creator="Xcode"> 
    <wpt lat="41.92296" lon="-87.63892"></wpt>
</gpx>

स्थान प्रबंधक द्वारा लौटाए जाने वाले लेट / लोन मानों को वैकल्पिक रूप से केवल हार्डकोड करें। हालांकि यह पुरानी शैली है।

इसलिए आप इसे सिम्युलेटर में नहीं जोड़ेंगे, लेकिन अपने Xcode प्रोजेक्ट के लिए।


2
मैं पूर्वनिर्धारित स्थान का उपयोग कैसे कर सकता हूं। क्या आप कृपया विस्तार से बता सकते हैं ??? मैं इसके बारे में जानना चाहता हूं।
श्रेयांश महाजन

फिर xcode पर क्लिक करें> उत्पाद> योजनाएँ> योजना संपादित करें> मुख्य स्थान
Mumthezir VP

1

इस के लेखन के रूप में, IOS सिम्युलेटर के लिए स्थान विकल्प को सुविधाओं -> स्थान -> कस्टम स्थान पर स्थानांतरित कर दिया गया है


0

देर आए दुरुस्त आए :)

मैं अभी इस iSimulate में आया था जो आपको ऐप पर फ़ेक लोकेशन भेजने की अनुमति देता है। समाधान मुफ्त नहीं है।

> Q: How does iSimulate work? 

> A: When added to your project, the iSimulate
> SDK library creates a listening server
> on your iPhone Simulator that waits
> for a connection from an iPhone/iPod
> running the iSimulate client. When
> such connection is established, the
> iSimulate client running on your
> iPhone/iPod captures all data from the
> accelerometer sensor, the touch
> events, the location and device ID and
> streams them to the server. The
> iSimulate SDK library then recreates
> all input events synthetically. This
> is entirely transparent to your
> application and does not interfere
> with your application's functionality.

वैसे भी, मैं इसे पाने की योजना बना रहा हूं। जल्द ही और अधिक अद्यतन करेगा!


मैंने सिर्फ डेवलपर्स से संपर्क किया: "iSimulate के विकल्प में," सेलेक्ट कंप्यूटर टू कनेक्ट "स्क्रीन में टॉप-राइट बटन से पहुँचा, आप उपयोग करने के लिए चार अन्य स्थानों में से एक का चयन कर सकते हैं।" तो, वास्तव में ज्यादा मदद नहीं।
साइमन वुडसाइड

bitbucket.org/gnucoop/xamarin-ios-simulator-enhancements यह मुफ़्त में स्थानों का अनुकरण करने में मदद करता है
पियरे

0

आप अपना स्थान कहाँ सेट करना चाहते हैं? यू लोकेशन दिखाने के लिए आप मैपकिट एपी का उपयोग कर सकते हैं। Mapkit का उपयोग कैसे करें के बारे में अधिक विवरण के लिए icodeblog.com देखें। इसके अलावा आप अपने वांछित कॉर्डिनेट को स्टोर कर सकते हैं बस एक ऑब्जेक्ट बनाएं CLLocation2D * लोकेशन; location.longitude = आपका इच्छित देशांतर मान; location.latitude = आपका इच्छित अक्षांश मान;


यह एक पुराना सवाल था जब मैंने एसडीके से माफी मांगी थी। मुझे अब एहसास हुआ कि सिम्युलेटर में कोरलोकेशन को स्वचालित करने के लिए कोई समर्थन नहीं है, जो शर्म की बात है।
क्लिफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.