2016-07-13 25 views
6

Çalışma zamanı sırasında konum simülatörü şehrini programsal olarak değiştirmek için bir yöntem var mı? Örneğin, bu, Londra veya Tokyo’yu simüle etmek için testlere izin verir.Çalışma zamanı sırasında Konum simülatörünü ayarla Şehir/GPX Çalışma Zamanı

Aşağıdaki resim, konumlar (GPX dosyaları) arasında manuel olarak nasıl geçiş yapılacağını gösterir. Uygulama çalışırken programatik olarak bu sonuca nasıl ulaşabilirim? konumunu ayarlamak için

enter image description here

+0

Evet, bir GPX Dosyası ekleyebilirsiniz –

+0

@DiogoAntunes evet İki GPX dosyası ekledim. Çalıştırma sırasında aralarında nasıl geçiş yapabilirim (seçeneği el ile tıklamadan)? – Taylor

+0

Yapamazsınız :) elle seçmeden olmaz –

cevap

0

Alternatif bir yol 'CLLocationManager' sınıfının 'yerini' swizzling gereğidir. obj-c,

+(void) load { 
    // replace 'location' with 'custom_location' method 
} 

Sonra CUSTOM_LOCATION yöntemini uygulamak ne basitçe 'kMockedLatitude' ve 'kMockedLongitude' değişkenleri değiştirerek ayarlamak istediğiniz yeri ile.

//Portland, USA 
CLLocationDegrees kMockedLatitude = 45.52306; 
CLLocationDegrees kMockedLongitude = -122.67648; 

-(CLLocation *)custom_location 
{ 
    return [[CLLocation alloc] initWithLatitude:kMockedLatitude longitude:kMockedLongitude]; 
} 

Bu, iOS aygıtında bile çalışır.

+0

Sadece GPX dosyalarını kullanarak bunu gerçekleştirmenin herhangi bir yolu var mı? Dosyaların karmaşık yol noktaları ve zamanlama var, bu yüzden Cllocafion işe yaramaz. – Taylor

+0

Bu, GPX ile çalışmaz. Ancak programatik olarak konum değiştirmenin yollarından biridir. Bunu projemden biri için yapıyordum. –

+0

bu http://stackoverflow.com/questions/38493642/automating-xcode-debug-simulate-location-command/38632244#38632244 adresini deneyin. –

İlgili konular