Flutter-geolocator: IOS์˜ ์˜ˆ์™ธ

์— ๋งŒ๋“  2019๋…„ 02์›” 14์ผ  ยท  21์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Baseflow/flutter-geolocator

๐Ÿ› ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ

์‹ค์‹œ๊ฐ„ ์œ„์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์ŠคํŠธ๋ฆผ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๋‚ด ์œ„์น˜๊ฐ€ ๊ณ ์ •๋˜๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€๋งŒ ์œ„์น˜๋ฅผ ์ด๋™ (์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ-> ๋””๋ฒ„๊ทธ-> ์œ„์น˜-> ๋„์‹œ ์‹คํ–‰)์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

[VERBOSE-2:shell.cc(184)] Dart Error: Unhandled exception:
PlatformException(ERROR_UPDATING_LOCATION, The operation couldnโ€™t be completed. (kCLErrorDomain error 0.), null)
#0      _rootHandleUncaughtError.<anonymous closure> (dart:async/zone.dart:1112:29)
#1      _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#2      _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ์œ„์น˜๊ฐ€ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

๋ณต์ œ ๋‹จ๊ณ„

var locationOptions =
      LocationOptions(accuracy: LocationAccuracy.high, distanceFilter: 10);

geolocator.getPositionStream(locationOptions).listen((Position position) {
      print("New pos update: $position");
      if (position != null)
        setState(() {
          _position = position;
        });
    });

๊ตฌ์„ฑ

๋ฒ„์ „ : 2.1.1

ํ”Œ๋žซํผ:

  • [x] : iphone : iOS
  • [] : ๋กœ๋ด‡ : Android
ios bug up for graps

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ ๋‚ด ํ•ด๊ฒฐ์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ-> ์œ„์น˜->

Screen Shot 2019-10-17 at 4 28 02 PM

์—ฌ๊ธฐ๋ฅผ ์ฒดํฌํ–ˆ์„ ๋•Œ '์—†์Œ'๊ณผ '์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜'๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜๊ณ , ๋ณด์‹œ๋Š”๋Œ€๋กœ ์˜ต์…˜์„ ์„ ํƒํ–ˆ๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  21 ๋Œ“๊ธ€

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์œ„์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๋Š” ์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ ๋‚ด ์œ„์น˜๊ฐ€ ๊ณ ์ •๋˜๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ / ์œ„์น˜์—์„œ ์œ„์น˜๋ฅผ ๋ช‡ ๋ฒˆ ์—…๋ฐ์ดํŠธํ•˜๋ฉด์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

[VERBOSE-2 : ui_dart_state.cc (148)] ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ : PlatformException (ERROR_UPDATING_LOCATION, ์ž‘์—…์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (kCLErrorDomain ์˜ค๋ฅ˜ 0.), null)

๊ตฌ์„ฑ
geolocator ์‚ฌ์šฉ : '3.0.0'

iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (12.1) ๋ฐ ์žฅ์น˜ (12.1.4)

๋‚˜๋Š” ์ด๊ฒƒ์„ ๋” ์กฐ์‚ฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ณง ์—…๋ฐ์ดํŠธ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ 10.1, 11.1์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์‚ฌ์šฉ-์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ-> ๋””๋ฒ„๊ทธ-> ์œ„์น˜-> ๊ณ ์†๋„๋กœ ๋“œ๋ผ์ด๋ธŒ

12.1์—์„œ ์‹คํŒจ
์‚ฌ์šฉ-์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ-> ๋””๋ฒ„๊ทธ-> ์œ„์น˜-> ๊ณ ์†๋„๋กœ ๋“œ๋ผ์ด๋ธŒ
PlatformException (ERROR_UPDATING_LOCATION, ์ž‘์—…์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

geolocator ์˜ˆ์ œ 12.1์—์„œ ์‹คํŒจ

screenshot 2019-02-19 at 14 28 04

๋‚˜๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์š”

์ง„์‹ค. ์ œ๊ณต๋œ ์˜ˆ์ œ์—์„œ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ๋ณด๊ณ  ์žˆ์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ๋จผ์ € "๋„์‹œ ์ž์ „๊ฑฐ ํƒ€๊ธฐ"๋ฅผ ์‹œ๋„ํ•ด ๋ณด์•˜๊ณ  ํšจ๊ณผ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜์ด ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ "city run"์œผ๋กœ ์ „ํ™˜ ํ•  ๋•Œ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ City Bicycle Ride๋Š” ๊ทธ ๋™์•ˆ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ํ”„๋กœํ•„์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘ 1 : ๊ทธ๋ฆฌ๊ณ  ์ด์ œ ์ž์ „๊ฑฐ ๋ชจ๋“œ๋„ ์ž‘๋™์„ ๋ฉˆ์ท„์Šต๋‹ˆ๋‹ค!
ํŽธ์ง‘ 2 : ์•ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ์œ„์น˜ ์•ก์„ธ์Šค๋ฅผ ๋‹ค์‹œ ํ—ˆ์šฉํ•˜๋ฉด์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ๋„๋ณด๊ณ ์žˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์„ํ–ˆ๋‹ค.

  StreamSubscription<Position> _positionStream;

  void _streamLocation() {
    // TODO: initialize _positionStream
    _positionStream.onError((e) {
      print("error streaming position: $e");
      _disposePositionStream();
      _streamLocation();
    });
  }

  void _disposePositionStream() {
    if (_positionStream != null) {
      _positionStream.cancel();
      _positionStream = null;
    }
  }

์ŠคํŠธ๋ฆผ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์ด์ œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  :์ด ๋„๋ง์ด ์ฒ˜๋ฆฌํ•˜๋Š” ์ตœ์ ์˜ ๋ฐฉ๋ฒ•ํ•˜์ง€ ์•Š์€ _positionStream ์—ฌ์ „ํžˆ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ๋™์•ˆ onError .

์˜ˆ์ œ ์•ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ์ „ํžˆ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
Single์€ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ๋•Œ๋•Œ๋กœ null์„๋ณด๊ณ ํ•˜์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์—…๋ฐ์ดํŠธ ํ›„ ์ŠคํŠธ๋ฆผ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

PlatformException (ERROR_UPDATING_LOCATION, ์ž‘์—…์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (kCLErrorDomain ์˜ค๋ฅ˜ 0.), null)

๊ตฌ์„ฑ (ํ˜„์žฌ)
geolocator ์‚ฌ์šฉ : "5.1.1 + 1"

iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (12.4) ๋ฐ ์žฅ์น˜ (10.xx)

ํ•ดํ‚น ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ..

LocationTask.m

์ด๊ฒƒ์€ Simulator 12.4 ๋ฐ 10.3์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋””๋ฒ„๊ทธ๋ฅผ ๊ธฐ์–ตํ•˜์‹ญ์‹œ์˜ค. ์œ„์น˜๋Š” ๋•Œ๋•Œ๋กœ ๋ณ€๊ฒฝ๋˜๊ธฐ ์ „์— ๋ช‡ ๋ฒˆ ํ‚ฅ์„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ƒ๊ฐ?

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„์—๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ ํ›„ WiFi๊ฐ€ ์ผœ์ ธ์žˆ์„ ๋•Œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์œผ๋ฉฐ 3g๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. londonappbrewery์—์„œ ๊ณผ์ •์„ ์™„๋ฃŒํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅธ๋‹ค : /

์•”ํ˜ธ:
Screenshot 2019-10-03 at 9 55 17 PM

๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ iPhone Xส€์—์„œ lib / main.dart ์‹คํ–‰ ์ค‘ ...
Xcode ๋นŒ๋“œ ์‹คํ–‰ ์ค‘ ...
Xcode ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 24.1 ์ดˆ
๊ธฐ๊ธฐ iPhone Xส€์— ํŒŒ์ผ ๋™๊ธฐํ™” ์ค‘ ...
[VERBOSE-2 : ui_dart_state.cc (148)] ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ : PlatformException (ERROR_UPDATING_LOCATION, ์ž‘์—…์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (kCLErrorDomain ์˜ค๋ฅ˜ 0.), null)

0 StandardMethodCodec.decodeEnvelope (ํŒจํ‚ค์ง€ : flutter / src / services / message_codecs.dart : 569 : 7)

1 MethodChannel.invokeMethod (ํŒจํ‚ค์ง€ : flutter / src / services / platform_channel.dart : 316 : 33)

2 Geolocator.getCurrentPosition (ํŒจํ‚ค์ง€ : geolocator / geolocator.dart : 103 : 32)

3 _LoadingScreenState.getLocation (ํŒจํ‚ค์ง€ : clima / screens / loading_screen.dart : 12 : 10)

4 _LoadingScreenState.build.(ํŒจํ‚ค์ง€ : clima / screens / loading_screen.dart : 22 : 13)

5 _InkResponseState._handleTap (ํŒจํ‚ค์ง€ : flutter / src / material / ink_well.dart : 654 : 14)

6 _InkResponseState.build.(ํŒจํ‚ค์ง€ : flutter / src / material / ink_well.dart : 729 : 32)

7 GestureRecognizer.invokeCallback (ํŒจํ‚ค์ง€ : flutter / src / gestures / recognizer.dart : 182 : 24)

8 <โ€ฆ>

Android ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (Pixel 3a API 28)์—์„œ๋„ ์‹คํ–‰ ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์ž˜๋ชป๋œ ์ขŒํ‘œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ขŒํ‘œ์˜ ์ฐจ์ด๊ฐ€ ํฝ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ €๋Š” ํŒŒํ‚ค์Šคํƒ„์—์„œ ์œ„์น˜๋ฅผ ์–ป๊ณ  ๋ฏธ๊ตญ ์–ด๋”˜๊ฐ€์— ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

252 ์ด๊ฒƒ์„ ์‚ดํŽด๋ณด๊ณ  ๊ณตํ†ต์  ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‚ด๊ฐ€ ๋ฌด์—‡์„๋ณด๊ณ  ์žˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ๊ณผ์ •์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ ๋‚ด ํ•ด๊ฒฐ์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ-> ์œ„์น˜->

Screen Shot 2019-10-17 at 4 28 02 PM

์—ฌ๊ธฐ๋ฅผ ์ฒดํฌํ–ˆ์„ ๋•Œ '์—†์Œ'๊ณผ '์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜'๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜๊ณ , ๋ณด์‹œ๋Š”๋Œ€๋กœ ์˜ต์…˜์„ ์„ ํƒํ–ˆ๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

Sentry์—์„œ ์ƒ์‚ฐ์ค‘์ธ iOS ์žฅ์น˜์—์„œ๋„์ด ๋‚ด์šฉ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์œ„์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  getCurrentPosition / getLastKnownPosition ์ „ํ™”ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

PlatformException: PlatformException(ERROR_UPDATING_LOCATION, The operation couldnโ€™t be completed. (kCLErrorDomain error 0.), null)
  File "message_codecs.dart", line 569, in StandardMethodCodec.decodeEnvelope
  File "framework.dart", line 3919, in ComponentElement.mount
  File "framework.dart", line 3101, in Element.inflateWidget
  File "framework.dart", line 2904, in Element.updateChild
  File "framework.dart", line 5127, in SingleChildRenderObjectElement.mount
  File "framework.dart", line 3101, in Element.inflateWidget
  File "framework.dart", line 2904, in Element.updateChild
  File "framework.dart", line 3961, in ComponentElement.performRebuild
  File "framework.dart", line 3738, in Element.rebuild
  File "framework.dart", line 3924, in ComponentElement._firstBuild
  File "framework.dart", line 4088, in StatefulElement._firstBuild
  File "framework.dart", line 3919, in ComponentElement.mount
.
.
.

์•„์ด๋””์–ด?

๋‹ค์Œ ์ฝ”๋“œ๋Š” ์ €์—๊ฒŒ ๋™์ผํ•œ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';

class LoadingScreen extends StatefulWidget {
  <strong i="6">@override</strong>
  _LoadingScreenState createState() => _LoadingScreenState();
}

class _LoadingScreenState extends State<LoadingScreen> {

  void getLocation() async {
    Position position = await Geolocator()
      .getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
    print(position);
  }

  <strong i="7">@override</strong>
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          onPressed: () {
            getLocation();
          },
          child: Text('Get Location'),
        ),
      ),
    );
  }
}

๋ฒ„์ „

์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค 3.5.3
๋นŒ๋“œ # AI-191.8026.42.35.6010548, 2019 ๋…„ 11 ์›” 15 ์ผ์— ๋นŒ๋“œ ๋จ
JRE : 1.8.0_202-release-1483-b49-5587405 x86_64
JVM : JetBrains sro์˜ OpenJDK 64 ๋น„ํŠธ ์„œ๋ฒ„ VM
macOS 10.15.2

geolocator-5.1.5
location_permissions-2.0.3
ํ”Œ๋Ÿฌํ„ฐ ๋ฒ„์ „ : v1.13.5

์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ธฐ์—์„œ ์‹คํ–‰ : Iphone 11 Pro Max 13.3

@softronaut๊ฐ€ ์ œ์•ˆํ•œ๋Œ€๋กœ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์•ฑ์—์„œ ์œ„์น˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ์„  ๋œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์œ„์น˜๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. londonappbrewery์—์„œ ๊ณผ์ •์„ ์™„๋ฃŒํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๊ฒƒ์„ ๊ณ ์น˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅธ๋‹ค : /

์•”ํ˜ธ:
Screenshot 2019-10-03 at 9 55 17 PM

๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ iPhone Xส€์—์„œ lib / main.dart ์‹คํ–‰ ์ค‘ ...
Xcode ๋นŒ๋“œ ์‹คํ–‰ ์ค‘ ...
Xcode ๋นŒ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 24.1 ์ดˆ
๊ธฐ๊ธฐ iPhone Xส€์— ํŒŒ์ผ ๋™๊ธฐํ™” ์ค‘ ...
[VERBOSE-2 : ui_dart_state.cc (148)] ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์˜ˆ์™ธ : PlatformException (ERROR_UPDATING_LOCATION, ์ž‘์—…์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (kCLErrorDomain ์˜ค๋ฅ˜ 0.), null)

0 StandardMethodCodec.decodeEnvelope (ํŒจํ‚ค์ง€ : flutter / src / services / message_codecs.dart : 569 : 7)

1 MethodChannel.invokeMethod (ํŒจํ‚ค์ง€ : flutter / src / services / platform_channel.dart : 316 : 33)

2 Geolocator.getCurrentPosition (ํŒจํ‚ค์ง€ : geolocator / geolocator.dart : 103 : 32)

3 _LoadingScreenState.getLocation (ํŒจํ‚ค์ง€ : clima / screens / loading_screen.dart : 12 : 10)

4 _LoadingScreenState.build. (ํŒจํ‚ค์ง€ : clima / screens / loading_screen.dart : 22 : 13)

5 _InkResponseState._handleTap (ํŒจํ‚ค์ง€ : flutter / src / material / ink_well.dart : 654 : 14)

6 _InkResponseState.build. (ํŒจํ‚ค์ง€ : flutter / src / material / ink_well.dart : 729 : 32)

7 GestureRecognizer.invokeCallback (ํŒจํ‚ค์ง€ : flutter / src / gestures / recognizer.dart : 182 : 24)

8 <โ€ฆ>

Android ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ (Pixel 3a API 28)์—์„œ๋„ ์‹คํ–‰ ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ์ž˜๋ชป๋œ ์ขŒํ‘œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ขŒํ‘œ์˜ ์ฐจ์ด๊ฐ€ ํฝ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ €๋Š” ํŒŒํ‚ค์Šคํƒ„์—์„œ ์œ„์น˜๋ฅผ ์–ป๊ณ  ๋ฏธ๊ตญ ์–ด๋”˜๊ฐ€์— ์œ„์น˜๋ฅผ ํ‘œ์‹œํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค.

iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ-> ๊ธฐ๋Šฅ-> ์œ„์น˜-> ์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜ ...

๊ธฐ๋Šฅ> ์œ„์น˜> ์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜์—์„œ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜๋ฅผ ์„ค์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

locati onManager : didUpdateLocations :
[CurrentLocationTask dealloc]
[LocationTask dealloc]

iOS ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ-> ๊ธฐ๋Šฅ-> ์œ„์น˜-> ์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜๋ฅผ ๋”ฐ๋ž๋Š”๋ฐ ์ด์ œ ์œ„์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋ญ์•ผ?

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์œผ๋ฉฐ ๋‚ด ํ•ด๊ฒฐ์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋””๋ฒ„๊ทธ-> ์œ„์น˜->

Screen Shot 2019-10-17 at 4 28 02 PM

์—ฌ๊ธฐ๋ฅผ ์ฒดํฌํ–ˆ์„ ๋•Œ '์—†์Œ'๊ณผ '์‚ฌ์šฉ์ž ์ง€์ • ์œ„์น˜'๊ฐ€ ์„ ํƒ๋˜์ง€ ์•Š์•˜๊ณ , ๋ณด์‹œ๋Š”๋Œ€๋กœ ์˜ต์…˜์„ ์„ ํƒํ–ˆ๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€์ด ์˜ต์…˜์„ ๋ช‡ ๋ฒˆ ์„ค์ •ํ•ด์•ผํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ ๋•Œ๋•Œ๋กœ ์„ค์ •์ด ์ž์ฒด์ ์œผ๋กœ ์žฌ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์™œ ์ด๊ฒƒ์ด์ธ์ง€ ์•„๋Š” ์‚ฌ๋žŒ ์žˆ์Šต๋‹ˆ๊นŒ?

์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ธฐ๋Šฅ-> ์œ„์น˜-> ์˜ต์…˜ ์„ ํƒ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „ 6.0.0์—์„œ ํ•ด๊ฒฐ๋จ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰