Bagaimana cara mengatur lokasi (seperti yang diambil di layanan CoreLocation) di Simulator iPhone?
iphone
ios-simulator
core-location
Jurang
sumber
sumber
Jawaban:
Mulai iOS 5, simulator memiliki lokasi yang dapat dikonfigurasi.
Di bawah menu Debug, entri terakhir adalah "Lokasi"; ini memberi Anda sub menu dengan:
Lokasi Khusus memungkinkan Anda memasukkan nilai Lintang / Bujur. Naik sepeda, City Run, dan Freeway Drive adalah simulasi lokasi bergerak (tentu saja di Cupertino).
Tentu saja, ini tidak membantu debugging untuk iOS 4 (atau sebelumnya); tapi itu peningkatan yang pasti!
sumber
Buat di file TextEdit file berikut, sebut saja MyOffice misalnya. Jadikan ekstensi sebagai .gpx
<?xml version="1.0"?> <gpx version="1.0" creator="MyName"> <wpt lat="53.936166" lon="27.565370"> <name>MyOffice</name> </wpt> </gpx>
Pilih di Xcode di area Simulasikan
Add GPX File to Project...
sumber
Dalam panggilan balik delegasi saya, saya memeriksa untuk melihat apakah saya menjalankan simulator (
#if TARGET_ IPHONE_SIMULATOR
) dan jika demikian, saya menyediakan Lat / Bujur saya sendiri yang telah dicari sebelumnya. Sepengetahuan saya, tidak ada cara lain.sumber
Debug
menu pada simulator menggunakanLocation
entri yang memungkinkan pengaturan lokasi khusus atau memilih dari beberapa wahana dan lokasi yang telah ditentukan.di menu iOS Simulator, buka Debug -> Lokasi -> Lokasi Kustom. Di sana Anda dapat mengatur garis lintang dan bujur dan menguji aplikasi yang sesuai. Ini berfungsi dengan mapkit dan juga dengan CLLocationManager.
sumber
XCode 11.3 dan sebelumnya:
Debug -> Location -> Custom Location
XCode 11.4+:
Features -> Location -> Custom Location
sumber
Pra iOS 5 Anda bisa melakukannya dalam kode:
Saya menggunakan potongan ini tepat sebelum
@implementation
kelas di mana saya membutuhkan informasi heading dan lokasi palsu saya.Setelah iOS 5 cukup sertakan file GPX dalam proyek Anda seperti ini agar lokasi diperbarui terus menerus Hillerød.gpx:
Saya menggunakan GPSies.com untuk membuat file dasar untuk data gpx. Sedikit pembersihan diperlukan.
Aktifkan dengan menjalankan simulator dan memilih file Anda
(sumber: castleandersen.dk )
sumber
Buka aplikasi iOS Simulator dari Menu Debug -> Lokasi ->
sumber
Anda dapat dengan mudah membagikan lokasi yang diinginkan dari aplikasi macOS Maps ke simulator Xcode .
Ini memungkinkan Anda menguji beberapa lokasi dengan cepat, memiliki pemahaman tentang di mana lokasi secara geografis (misalnya untuk menguji geofencing), dan memutuskan pada waktu proses ke mana harus pergi selanjutnya (misalnya untuk debugging dan fine-tuning barang).
Menguji ini di MacOS Catalina 10.15.4 dan Xcode 11.4.
sumber
Orang-orang baik di FutureTap telah membuat FTLocationSimulator tersedia secara gratis di GitHub . Ini memungkinkan Anda menyiapkan rute uji menggunakan misalnya Google Earth, dan kemudian meminta simulator memasukkan koordinat ini ke aplikasi Anda.
Saya telah menulis posting blog tentang cara menggunakan FTLocationSimulator untuk dengan mudah beralih di antara beberapa rute selama pengujian fitur lokasi.
sumber
Anda dapat menambahkan file gpx ke proyek Anda dan menggunakannya:
edit skema> opsi> izinkan simulasi lokasi> pilih nama file yang berisi misalnya:
opsional, cukup hardcode nilai lintang / bujur yang dikembalikan oleh pengelola lokasi. Ini gaya lama.
jadi Anda tidak akan menambahkannya ke simulator, tetapi ke proyek Xcode Anda.
sumber
Saat tulisan ini dibuat, opsi lokasi untuk simulator IOS telah dipindahkan ke Fitur -> Lokasi -> Lokasi Khusus
sumber
Lebih baik terlambat daripada tidak sama sekali :)
Saya baru saja menemukan iSimulate ini yang memungkinkan Anda mengirim lokasi Palsu ke aplikasi. Solusinya TIDAK gratis.
Bagaimanapun, saya berencana untuk mendapatkan ini. akan segera diperbarui!
sumber
Di mana Anda ingin menyetel lokasi Anda? Anda dapat menggunakan api mapkit untuk menunjukkan lokasi Anda. lihat icodeblog.com untuk detail lebih lanjut tentang cara menggunakan mapkit. Anda juga dapat menyimpan koordinat yang Anda inginkan hanya dengan membuat lokasi objek CLLocation2D *; location.longitude = nilai bujur yang Anda inginkan; location.latitude = nilai garis lintang yang Anda inginkan;
sumber