2017-09-27 19 views
11

Złożyłem już radar, ale chciałem sprawdzić, czy ktoś inny miał ten problem.Intermittent and late Significant Zmiana lokalizacji zdarzeń w aplikacjach zbudowanych za pomocą Xcode 9 na urządzenia z systemem iOS 11

Wygląda na to, że znaczące zmiany lokalizacji (SLC) zachowują się inaczej na iOS 11, ale tylko w aplikacjach zbudowanych na Xcode 9. Wygląda na to, że SLC działają znacznie gorzej i są opóźnione w porównaniu z iOS 10. I może wykonać kopię zapasową danych z wielu urządzeń i łatwo odtwarzalnego eksperymentu. Chciałem, aby ten post był krótszy, więc jeśli ktoś chce więcej danych lub instrukcji dotyczących jego szczegółowego odtwarzania, chętnie podzielę się tym, co zrobiłem.

Używanie tej minimalistycznej aplikacji do buforowania SLC: https://github.com/Root-App/root-ios-slc-tester Udało mi się pobrać dane z urządzeń iOS 10 i iOS 11.

Problem występuje tylko na iOS 11 urządzeń, na których aplikacja odbiera SLC został zbudowany na Xcode 9. Wystarczy, aby upewnić się, że jest jasne:

  • iOS 10 Urządzenie + aplikacja zbudowana na Xcode 9: działa jak przed
  • iOS 10 urządzenia + app zbudowany na Xcode 8: działa jak przed
  • iOS 11 urządzenie + aplikacja zbudowana na Xcode 8: działa jak przed
  • iOS 11 urządzenie + aplikacja zbudowana na Xcode 9: problem istnieje

Większość czasu (ale nie zawsze), SLC na kompilacji iOS 11 + Xcode 9 zdarzają się znacznie później niż SLC na urządzeniach sterujących (iOS 10).

Porównując pliki dziennika z powyższej aplikacji, urządzenia iOS 10 otrzymują SLC na więcej niż 2 minuty przed urządzeniami z systemem iOS 11. Czasami 10-15 minut wcześniej!

Przykładowe skrócone danych, w którym każda z linii jest inna podróż i stanowi pierwszy czas, że SLC odnotowano, że przelot (w HH: MM: SS):

iOS 10 | iOS 11 
------------------- 
20:41:08 | 20:44:45 
07:21:25 | 07:27:48 
18:54:57 | 19:07:36 
07:48:17 | 07:51:03 
17:29:44 | 17:38:18 

Szczeliny pomiędzy gdy nastąpiło SLC w systemie iOS 10 i iOS 11 wydaje się być nie do przyjęcia.

Czy ktoś inny obserwuje to zdegradowane zachowanie SLC?

+0

znaleźliście jakieś rozwiązanie? Muszę również wdrożyć SLC. pls sugerują mi najlepszy sposób przechwytywania lokalizacji, nawet jeśli aplikacja nie działa. –

Odpowiedz

1

Jeśli korzystasz z dostępu do lokalizacji "Podczas używania", o ile rozumiem, nic się nie zmienia.

Jeśli korzystasz z dostępu "Zawsze", a nie zapewniłeś zastępczego stanu "Podczas używania", tak jak powinieneś.

Poniższe informacje mogą być przydatne dla iOS 11

Jak Brad Jensen wyjaśnia w rozmowie WWDC wspomniałem, Apple zdecydował, że zmuszając użytkownika do dać aplikację „zawsze” dostęp do lokalizacji jest to złe doświadczenia użytkownika:

teraz drugi powód, uważamy, że wielu deweloperów wybrać wymagają autoryzacja zawsze są one po prostu stara się dać swoim użytkownikom najlepsze doświadczenia (...), ale to sprawia, że ​​bardzo słabej użytkownik doświadczenia dla użytkowników, którzy nie chcą przyznać aplikacji Al autoryzacja.Są oni zmuszeni wybierać między przyznawaniem aplikacji zawsze, która jest większa, niż chcielibyśmy w tym przykładzie, lub przyznaniem jej Nigdy, co oznacza, że ​​nie mogą korzystać z żadnej z dostępnych funkcji aplikacji opartych na lokalizacji. Ostatnią opcją jest przyznanie zawsze, a następnie odwołanie tej autoryzacji po zakończeniu korzystania z aplikacji. W każdym razie użytkownik nie spędza czasu z aplikacją .

Więcej szczegółów można przeczytać od dołu bloga to może być bardziej przydatny,

https://mackuba.eu/2017/07/13/changes-to-location-tracking-in-ios-11/

+0

Dla tej aplikacji "Zawsze" ma absolutnie kluczowe znaczenie dla jej funkcjonalności. Użytkownicy, którzy nie chcą przyznać mu "Zawsze" dostępu, nie otrzymają nic z aplikacji. –

Powiązane problemy