flutter 앱 접근 권한 설정
#
Find similar titles
- 최초 작성자
- 최근 업데이트
Structured data
- Category
- Programming
Table of Contents
플러터(Flutter) #
플러터란 #
- Flutter 개요 : http://www.incodom.kr/Flutter
- Flutter 설치 : http://www.incodom.kr/Flutter/setting
- Flutter state(상태) : http://www.incodom.kr/Flutter/state
- Flutter http(서버사용) : http://www.incodom.kr/Flutter/http
- Flutter FutureBuilder(비동기) : http://www.incodom.kr/Flutter/FutureBuilder
- Flutter 소셜 로그인 구현 - 카카오 : http://www.incodom.kr/flutter_%EC%86%8C%EC%85%9C_%EB%A1%9C%EA%B7%B8%EC%9D%B8_%EA%B5%AC%ED%98%84_-_%EC%B9%B4%EC%B9%B4%EC%98%A4
앱 접근 권한 설정 #
- 앱 접근 권한 설정이란
- 가장 많이 사용하는 핸드폰 기능
- Permission Handler 사용법
- app_tracking_transparency 설정
- 건강 데이터 사용을 위한 권한 설정
- 정리
앱 접근 권한 설정 #
앱 접근 권한 설정이란? #
- IOS 정책 중에 타사 '앱 또는 웹 사이트에서 사용자의 데이터 또는 현재 위치를 사용하도록 허용하면 해당 앱 또는 웹 사이트의 약관, 개인정보 취급방침 및 이용 사례가 적용됩니다. 사용자는 앱 및 웹 사이트의 약관, 개인정보 처리 방침 및 이용 사례를 검토하여 위치 및 기타 정보가 어떻게 사용되는지 숙지해야 합니다. Apple에서 수집하는 정보는 Apple의 개인정보 처리방침에 따라 취급됩니다.'라는 문구가 있다. 우리가 핸드폰에 있는 기능과 도구를 사용하기 위해서는 사용자의 동의가 필수적이다. 따라서 앱 목적에 맞는 기능을 정리하여 각각 동의받을 필요가 있다. 오늘은 앱들이 많이 사용하는 핸드폰 기능과 이를 사용하는 것에 대해 허락받는 방법에 대해서 알아볼 예정이다.
가장 많이 사용하는 핸드폰 기능 #
- SMS 사용(IOS만 받으면 됨)
- 저장소 사용(IOS - Permission.storage, AOS - Permission.mediaLibrary)
- 외부 저장소 접근(IOS - Permission.manageExternalStorage, AOS - Permission.mediaLibrary에서 통합)
- 파일 다운 - (IOS - Permission.requestInstallPackages 에서 다운 가능, AOS 별도로 할 것 없음)
- 블루투스 연결 (IOS - Permission.bluetoothConnect , AOS 별도로 할 것 없음)
- 제 3자 개인정보 공유 동의 (IOS - app_tracking_transparency패키지 설치 , AOS - Permission.appTrackingTransparency)
Permission Handler 사용법 #
-
Permission Handler는 핸드폰 기능을 사용하기 위해 사용자 동의 받아야 할 기능들을 정리한 패키지이다.
-
ios/Runner/Info.plist에 들어간다. 예를 들어 블루투스 기능을 추가하려면 아래와 같이 복사 붙여넣기 한다.
//블루투스 앱 사용 동의
<key>NSBluetoothAlwaysUsageDescription</key>
<string>bluetooth</string>
//블루투스 사용 동의
<key>NSBluetoothPeripheralUsageDescription</key>
<string>bluetooth</string>
-
각 기능에 대한 info.plist 정보는 (https://github.com/Baseflow/flutter-permission-handler/blob/master/permission_handler/example/ios/Runner/Info.plist)에 지정되어있다. 목적에 맞는 info.plist 문구를 가져다 사용하면 된다.
-
앱의 splash(초기로딩 화면)에 지정하는 것을 추천한다.
app_tracking_transparency 설정 #
- 안드로이드에서는 Permission Handler의 Permission.appTrackingTransparency를 통해서 넣으면 되지만 IOS에서는 app_tracking_transparency 패키지 따로 사용해야 한다.
//제 3자 개인 정보 활용 동의
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
-
위 문구를 Info.plist에 추가한다.
-
app_tracking_transparency를 runApp이 있는 main에 넣으면 가끔 에러가 발생한다. 따라서 homepage 클래스나 splash 클래스를 만들어서 그 클래스 안 initstate에 넣는 것을 추천한다.
건강 데이터 사용을 위한 권한 설정 #
- 안드로이드의 구글 핏 혹은 애플의 건강 앱에서 개인 건강 데이터를 사용하기 위해서는 사용자 동의가 필수이다.
//건강 데이터 공유 동의 문구
<key>NSHealthShareUsageDescription</key>
<string>We will sync your data with the Apple Health app to give you better insights</string>
//건강 데이터 수정 동의 문구
<key>NSHealthUpdateUsageDescription</key>
<string>We will sync your data with the Apple Health app to give you better insights</string>
-
위 문구를 Info.plsit에 지정한다.
-
해당 설명을(String 부분) 앱 목적성에 맞게 수정하는 것을 추천한다. 애플 심사에서 건강 데이터를 어디에 사용하는지 정확히 사용자에게 인지시키지 못하면 통과를 거부할 수 있다.
- XCode에 들어가 Runner - Target에 위 그림과 같이 + 버튼을 누른다.
-
capabilities에 health를 검색하고 등록한다.
-
안드로이드 사용자가 건강 데이터를 사용하기 위해서는 OAuth2 토큰을 발급해야 한다. 따라서 SHA-1 발급 => OAuth2 토큰 생성 => android/app/src/main/AndroidManifest.xml에 아래와 같은 문구를 추가한다.
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
- GCP의 사용자 인증 정보로 이동하여 사용자 인증 정보 만들기를 클릭한다.
- OAuth2 클라이언트 ID 를 클릭한다.
- 모든 프로세스를 완료하고 앱 수정을 누른다. 사용자 유형을 내부에서 테스트로 바꾼다.
-
구글 핏에 등록된 구글 계정들을 등록한다. 최대 100명까지 가능하며 그 이상 등록하기 위해서는 구글 핏에 심사를 받아야한다.
-
android/gradle.properties에 아래 코드를 추가한다.
org.gradle.jvmargs=-Xmx1536M
android.enableJetifier=true
android.useAndroidX=true
정리 #
- 플러터 뿐만 아니라 코틀린, 스위프트에서도 앱 권한 설정은 필수이다. 만약 핸드폰 기능을 사용하지만, 사용자 권한 설정 동의를 받지 않았다면 앱 심사 거절 사유가 되니 출시 전에 꼭 체크해야 한다.