Skip to content

flutter 앱 접근 권한 설정 #

Find similar titles

3회 업데이트 됨.

Edit

Structured data

Category
Programming

플러터(Flutter) #

플러터란 #

앱 접근 권한 설정 #

  1. 앱 접근 권한 설정이란
  2. 가장 많이 사용하는 핸드폰 기능
  3. Permission Handler 사용법
  4. app_tracking_transparency 설정
  5. 건강 데이터 사용을 위한 권한 설정
  6. 정리

앱 접근 권한 설정 #

앱 접근 권한 설정이란? #

IOS 정책 중에 타사 '앱 또는 웹 사이트에서 사용자의 데이터 또는 현재 위치를 사용하도록 허용하면 해당 앱 또는 웹 사이트의 약관, 개인정보 취급방침 및 이용 사례가 적용됩니다. 사용자는 앱 및 웹 사이트의 약관, 개인정보 처리 방침 및 이용 사례를 검토하여 위치 및 기타 정보가 어떻게 사용되는지 숙지해야 합니다. Apple에서 수집하는 정보는 Apple의 개인정보 처리방침에 따라 취급됩니다.'라는 문구가 있다. 우리가 핸드폰에 있는 기능과 도구를 사용하기 위해서는 사용자의 동의가 필수적이다. 따라서 앱 목적에 맞는 기능을 정리하여 각각 동의받을 필요가 있다. 오늘은 앱들이 많이 사용하는 핸드폰 기능과 이를 사용하는 것에 대해 허락받는 방법에 대해서 알아볼 예정이다.

가장 많이 사용하는 핸드폰 기능 #

  1. SMS 사용(IOS만 받으면 됨)
  2. 저장소 사용(IOS - Permission.storage, AOS - Permission.mediaLibrary)
  3. 외부 저장소 접근(IOS - Permission.manageExternalStorage, AOS - Permission.mediaLibrary에서 통합)
  4. 파일 다운 - (IOS - Permission.requestInstallPackages 에서 다운 가능, AOS 별도로 할 것 없음)
  5. 블루투스 연결 (IOS - Permission.bluetoothConnect , AOS 별도로 할 것 없음)
  6. 제 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>

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 부분) 앱 목적성에 맞게 수정하는 것을 추천한다. 애플 심사에서 건강 데이터를 어디에 사용하는지 정확히 사용자에게 인지시키지 못하면 통과를 거부할 수 있다.

Image

  • XCode에 들어가 Runner - Target에 위 그림과 같이 + 버튼을 누른다.

Image

  • capabilities에 health를 검색하고 등록한다.

  • 안드로이드 사용자가 건강 데이터를 사용하기 위해서는 OAuth2 토큰을 발급해야 한다. 따라서 SHA-1 발급 => OAuth2 토큰 생성 => android/app/src/main/AndroidManifest.xml에 아래와 같은 문구를 추가한다.

<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>

Image

  • GCP의 사용자 인증 정보로 이동하여 사용자 인증 정보 만들기를 클릭한다.

Image

  • OAuth2 클라이언트 ID 를 클릭한다.

Image

  • 모든 프로세스를 완료하고 앱 수정을 누른다. 사용자 유형을 내부에서 테스트로 바꾼다.

Image

  • 구글 핏에 등록된 구글 계정들을 등록한다. 최대 100명까지 가능하며 그 이상 등록하기 위해서는 구글 핏에 심사를 받아야한다.

  • android/gradle.properties에 아래 코드를 추가한다.

org.gradle.jvmargs=-Xmx1536M
android.enableJetifier=true
android.useAndroidX=true

정리 #

  • 플러터 뿐만 아니라 코틀린, 스위프트에서도 앱 권한 설정은 필수이다. 만약 핸드폰 기능을 사용하지만, 사용자 권한 설정 동의를 받지 않았다면 앱 심사 거절 사유가 되니 출시 전에 꼭 체크해야 한다.

참조링크 #

0.0.1_20231010_1_v71