본문 바로가기
프로그램 개발해서 돈벌기/flutter

flutter iOS에 권한 요청 방법 : 주소록에 접근 권한 요청하기

by ubmuhan 2023. 9. 20.
반응형

swift를 사용해서 xcode에서 개발을 진행할 경우 주소록 정보가 필요한 경우가 있습니다.

이 경우 "Info.plist" 파일에 주소록 접근 사유를 입력하면 됩니다.

 

<key>NSContactsUsageDescription</key>
<string>Access Contracts</string>

  

그러나 flutter에서 iOS -> Runner -> Info.plist 에 위 정보를 입력하여도 권한 요청 창이 뜨지 않습니다.

디버그 / 릴리즈 모드와 상관 없습니다.

 

iOS -> Runner -> Podfile에 아래 코드를 추가하면 해결됩니다.

 

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
        '$(inherited)',

        ## dart: PermissionGroup.calendar
        'PERMISSION_EVENTS=0',

        ## dart: PermissionGroup.reminders
        'PERMISSION_REMINDERS=0',

        ## dart: PermissionGroup.contacts
        'PERMISSION_CONTACTS=1',

        ## dart: PermissionGroup.camera
        'PERMISSION_CAMERA=0',

        ## dart: PermissionGroup.microphone
        'PERMISSION_MICROPHONE=0',

        ## dart: PermissionGroup.speech
        'PERMISSION_SPEECH_RECOGNIZER=0',

        ## dart: PermissionGroup.photos
        'PERMISSION_PHOTOS=0',

        ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
        # 'PERMISSION_LOCATION=0',

        ## dart: PermissionGroup.notification
        'PERMISSION_NOTIFICATIONS=0',

        ## dart: PermissionGroup.mediaLibrary
        'PERMISSION_MEDIA_LIBRARY=0',

        ## dart: PermissionGroup.sensors
        'PERMISSION_SENSORS=0'
      ]
    end
  end
end

 

위 코드에서 주소록에 대한 접근 요청할 경우 "PERMISSION_CONTRACTS=1" 처럼 0을 1로 변경해 주면 됩니다.

 

 

미국식
[pər│mɪʃn]
영국식
[pə│mɪʃn]
1. 허락, 허가
2. (문서로 된) 승인[허락/허가] (→planning permission)
 
 
반응형

댓글