iOS ์๋ฎฌ๋ ์ดํฐ๋ ์์น ๊ถํ์ ์์ฒญํ์ง ์์ต๋๋ค. ์ฅ์น๊ฐ ์ด๊ฒ์ ๊ฑด๋ ๋ฐ๊ฑฐ๋ '์ค๋จ'ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. geolocator.getCurrentPosition์ ์๋์ผ๋ก ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋ฉด(๋ฒํผ์ ๋๋ฌ) null ์ ๋ฐํํฉ๋๋ค. Android์ ๊ฒฝ์ฐ ๋ชจ๋ ์์๋๋ก ์๋ํฉ๋๋ค. geolocator.checkGeolocationPermissionStatus()๋ฅผ ์ฌ์ฉํ์ฌ ์์น ๊ถํ์ ํ์ธํ์ผ๋ฉฐ
GeolocationStatus.unknown .
iOS ์๋ฎฌ๋ ์ดํฐ๋ ์์น ์๋น์ค์ ๋ํ ์ฌ์ฉ์ ๊ถํ์ ์์ฒญํด์ผ ํฉ๋๋ค.
๋ฒ์ : 2.1.1
ํ๋ซํผ:
๋ด๊ฐ ์์์ฐจ๋ฆฐ ๊ฒ์ ์ฑ์ด ์ฒ์ ์ค์น๋๊ณ ์์น ์๋น์ค์ ์ก์ธ์คํ ๋ ์์คํ
์ด ๊ถํ์ ์์ฒญํ๋ ๋ํ ์์๋ฅผ ํ์ํ๊ณ ๋์์ checkPermissionStatus()
๊ฐ unknown
๋ฐํํ๋ค๋ ๊ฒ์
๋๋ค. ์ฌ์ฉ์๊ฐ ์ก์ธ์ค๋ฅผ ํ์ฉํ๋ฉด ์ฑ์์ Position
ํ๋์ ์งํํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ์์ฒญ์ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋ฐฉ๋ฒ์ด ์์ด์ผ ํฉ๋๋ค.
๋๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. Android๋ ์ ์๋ํ์ง๋ง iOS์์๋ NSLocationWhenInUseUsageDescription
์ ์ถ๊ฐํ์ง๋ง ๊ถํ ์ก์ธ์ค์ ๋ํ ๋ฉ์์ง๊ฐ ํ์๋์ง ์์ผ๋ฏ๋ก checkGeolocationPermissionsStatus()
๋ ํญ์ unknown
์
๋๋ค. ์ด๊ฒ์ ์๋ฎฌ๋ ์ดํฐ๋ฟ๋ง ์๋๋ผ ๋ฌผ๋ฆฌ์ ์ฅ์น์๋ ์์ต๋๋ค.
๋ช ์๊ฐ ๋์ ๊ฐ์ ๋ฌธ์ . ์๋๋ก์ด๋๋ ์ ์๋ํฉ๋๋ค. iOS๋ null์ ์ ๊ณตํ์ต๋๋ค.
์๋ฎฌ๋ ์ดํฐ์์ iOS ์ฑ์ ์ ๊ฑฐํ๊ณ ๋ค์ ์์ํ์ต๋๋ค. ๊ทธ ํ์๋ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. ํ.
podfile์ ์ ๋ณด๊ฐ ๋๋ฝ๋์ด ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ์ฅ์น ๋ฐ ์๋ฎฌ๋ ์ดํฐ์์ ์ฑ์ ์ ๊ฑฐํ๊ณ ๋ค์ ์ค์นํด๋ ๋์ผํฉ๋๋ค.
์์น๋ฅผ ์ป์ผ๋ ค๊ณ ํ๋ฉด ๋ค์ ์์ธ๊ฐ ๋ํ๋ฉ๋๋ค. ERROR_ALREADY_REQUESTING_PERMISSIONS
@dstuff @kika @JStuve @StephanCassel ,
๋๋ ๊ทธ๊ฒ์ ๊ณ ์ณค๋ค! Info.plist์์ ์ด ๊ถํ NSLocationAlwaysUsageDescription์ NSLocationWhenInUseUsageDescription๊ณผ ํจ๊ป ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฑ์ iOS 8, Flutter ๊ธฐ๋ณธ๊ฐ์ ๋์์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ NSLocationAlwaysUsageDescription์ iOS 10 ์ด์์์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ iOS ์ฑ์ ๊ถํ ํ๋กฌํํธ๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค์์ต๋๋ค. ๋๋ ์ ๊ฑฐํ๊ณ ํจ๊ณผ๊ฐ ์์๊ณ ๊ถํ์ ์์ฒญํ๊ณ ์์น๋ฅผ ์ ์์์์ต๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฌ๋ถ์๊ฒ๋ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@cetorres ๋๋์ด ์ป์์ต๋๋ค! ๊ทํ์ ๊ถ์ฅ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ผ๋ฉฐ, ๋ํ checkGeolocationPermissionStatus
์ ์ getCurrentPosition
checkGeolocationPermissionStatus
๋ฅผ ํธ์ถํ์ฌ ๊ถํ ํ๋กฌํํธ๊ฐ ํธ๋ฆฌ๊ฑฐ๋์ง ์์์ต๋๋ค!
๊ฐ์ฌ ํด์! :๋งฅ์ฃผ:
๋ฒ์ : 3.0.0 ios๋ ๊ถํ ์ก์ธ์ค๋ฅผ ์์ฒญํ์ง ์์ต๋๋ค.
Xcode์์ ๋๋ฒ๊น
ํ ๋ NSLocationAlwaysAndWhenInUseUsageDescription
๋ ํ์ํฉ๋๋ค. ( NSLocationAlwaysUsageDescription
๋ฐ NSLocationWhenInUseUsageDescription
๋ง ์์ผ๋ฉด Flutter์์ ์๋์ผ๋ก ์คํจํฉ๋๋ค)
๋์ผํ ๋ฌธ์ , ๋ชจ๋ ๊ฒ์ด ์ฆ๋ช ๋์๋ค๊ณ ๋งํ์ง๋ง ์๋ฌด ๊ฒ๋ ์๋ํ์ง ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@cetorres๋ ๊ฐ์ฌํฉ๋๋ค! ์ค์ ๋ก iOS 10 ์ด์์ ๋์์ผ๋ก ํ๊ณ ์์ง๋ง ์๋ํ๋ ค๋ฉด NSLocationAlwaysUsageDescription
์ ์ ๊ฑฐํด์ผ ํ์ต๋๋ค. ๋ด ์ฑ์ ์ฌ์ฉํ์ง ์์ ๋ ์์น ์ ๋ณด๊ฐ ํ์ํ์ง ์์ผ๋ฏ๋ก ์ด ์ ๋๋ฉด ์ถฉ๋ถํฉ๋๋ค.
๋ฏธ์น! Apple์ ํ์์ ๊ฐ์ด TestFlight์ฉ์ผ๋ก ๋ด ์ฑ์ ์น์ธํ์ต๋๋ค.
์ด์ ์ด ๋น๋๋ฅผ TestFlight ํ ์คํธ์ ์ฌ์ฉํ๊ฑฐ๋ App Store์ ์ ์ถํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ํ ๋์๊ฒ ์ด๊ฒ์ ๋ณด๋์ต๋๋ค.
๊ทํ์ ์ฑ, [์์ ๋จ] 1.0.0(12)์ ๋ํ ์ต๊ทผ ์ ๊ณต์์ ํ๋ ์ด์์ ๋ฌธ์ ๋ฅผ ํ์ธํ์ต๋๋ค. ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐ์ก๋์์ง๋ง ๋ค์ ๋ฐฐ์ก์์ ๋ค์ ๋ฌธ์ ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
ITMS-90683: Info.plist์ ๋ชฉ์ ๋ฌธ์์ด์ด ์์ - ์ฑ์ ์ฝ๋๊ฐ ๋ฏผ๊ฐํ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ ํ๋ ์ด์์ API๋ฅผ ์ฐธ์กฐํฉ๋๋ค. ์ฑ์ Info.plist ํ์ผ์๋ ์ฑ์ ๋ฐ์ดํฐ๊ฐ ํ์ํ ์ด์ ๋ฅผ ๋ช ํํ๊ณ ์์ ํ๊ฒ ์ค๋ช ํ๋ ์ฌ์ฉ์ ์งํฅ ๋ชฉ์ ๋ฌธ์์ด๊ณผ ํจ๊ป NSLocationAlwaysUsageDescription ํค๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. 2019๋ ๋ด๋ถํฐ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ App Store์ ์ ์ถ๋ ๋ชจ๋ ์ฑ์ ๋ชฉ์ ๋ฌธ์์ด์ ํฌํจํด์ผ ํฉ๋๋ค. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ SDK๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ชฉ์ ๋ฌธ์์ด์ด ํ์ํ API๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ์ฑ์์ ์ด๋ฌํ API๋ฅผ ์ฌ์ฉํ์ง ์์ ์ ์์ง๋ง ๋ชฉ์ ๋ฌธ์์ด์ ์ฌ์ ํ โโํ์ํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ SDK ๊ฐ๋ฐ์์๊ฒ ์ฐ๋ฝํ์ฌ API๊ฐ ํฌํจ๋์ง ์์ ์ฝ๋ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ๋๋ก ์์ฒญํ ์ ์์ต๋๋ค. ์์ธํ ์์๋ณด์ญ์์ค(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).
๊ทธ๋์ ์ ๋ ์ฌ๊ธฐ์์ ์ฌ์ ํ ํฝํฝํ ๋ฐง์ค ์๋ฅผ ๊ฑท๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๊ธ์ AndroidX ์ฅ์ ๋ฌผ์ ๋๊ณ ์ถ์ง ์๊ธฐ ๋๋ฌธ์ ํ๋ฌ๊ทธ์ธ์ ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค...
๋น์ ์ ๋ฌด์์ ์ ์ํฉ๋๊น? "๋ฌธ์ ๋ฅผ ์๋ณํ์ต๋๋ค" ๋ฉ์์ง๋ฅผ ๋ฌด์ํ์๊ฒ ์ต๋๊น?
์ ๋ฐ์ดํธ: info.plist์ ์๋ ์ธ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ถ๊ฐํ๋ฉด ์ ์๊ฒ ํจ๊ณผ์ ์ด์์ต๋๋ค. ์ ํ๋ ๋ง์กฑํฉ๋๋ค.
NSLocationWhenInUseUsageDescription
NSLocationAlwaysAndWhenInUseUsageDescription
ํ ๊ฐ์ฌํฉ๋๋ค, @vejmartin
@kbrmimbyl ๋น์ ์ ์๋ช ์ ์์ธ์ ๋๋ค. Info.plist์ "NSLocationAlwaysAndWhenInUseUsageDescription" ํค๊ฐ ์์ด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค!!
XCode๊ฐ ์๋ AndroidStudio์์ info.plist๋ฅผ ์์ ํ ์ฌ๋์ ์ํ ์ ๋ณด: ์ ์๊ฒ๋ "NSLocationAlwaysAndWhenInUseUsageDescription"์ ์ ๊ฑฐํ๊ณ ๋์ Xcode์์ ํด๋น "๊ฐ์ธ ์ ๋ณด - ์์น ํญ์ ๋ฐ ์ฌ์ฉ ์ค๋ช
์ฌ์ฉ"์ ์ ํํ์ ๋ ํจ๊ณผ๊ฐ ์์์ต๋๋ค. ์ฌ์ผ์ธ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ ์ด๋ฏธ ๊ทธ๋ฐ ์์ผ๋ก ํฌ๋งท๋์์ง๋ง ์ด๊ฒ์ ๊ทธ๋ ์ง ์์์ต๋๋ค. ์์์ ์ธ๊ธํ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ง๋ง onError๋ ์๋ฌด ๊ฒ๋ ์ฃผ์ง ์์์ต๋๋ค. ๋น๋๊ธฐ๋ ๋จ์ง ๊ธฐ๋ค๋ฆฌ๊ณ ์์๊ณ ๊ฒฐ์ฝ ์งํ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ hotReload๋ฅผ ์ํํ๋ฉด ERROR_ALREADY_REQUESTING_PERMISSIONS๊ฐ ํ์๋ฉ๋๋ค. ์ฌ์ ํ ํด๋น ๊ถํ ์์ฒญ์ ๋ํ ์
๋ ฅ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ธฐ ๋๋ฌธ์
๋๋ค.
IOS11์ ๋์์ผ๋ก ํ๋ Android์์๋ ๋ชจ๋ ์ ์๋ํ์ต๋๋ค. ์ด์ IOS์์๋ ์๋ํฉ๋๋ค.
IOS ์ฅ์น์ ํ๋ฌํฐ ์น๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ์ IOS์์ ๊ถํ ๋ํ ์์๋ฅผ ํ์ํ์ง ์์ง๋ง Windows ๋ฐ Android ์ฅ์น์์ ์๋ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@dstuff @kika @JStuve @StephanCassel ,
๋๋ ๊ทธ๊ฒ์ ๊ณ ์ณค๋ค! Info.plist์์ ์ด ๊ถํ NSLocationAlwaysUsageDescription์ NSLocationWhenInUseUsageDescription๊ณผ ํจ๊ป ์ฌ์ฉํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฑ์ iOS 8, Flutter ๊ธฐ๋ณธ๊ฐ์ ๋์์ผ๋ก ์ค์ ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ NSLocationAlwaysUsageDescription์ iOS 10 ์ด์์์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ iOS ์ฑ์ ๊ถํ ํ๋กฌํํธ๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค์์ต๋๋ค. ๋๋ ์ ๊ฑฐํ๊ณ ํจ๊ณผ๊ฐ ์์๊ณ ๊ถํ์ ์์ฒญํ๊ณ ์์น๋ฅผ ์ ์์์์ต๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฌ๋ถ์๊ฒ๋ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.