티스토리 뷰
Accessing User Data and Resources
사용자 개인정보는 가장 중요하다. 앱을 신뢰하도록 하려면 개인정보 관련 데이터, 리소스 그리고 사용방벙을 투명하게 공개하는 것이 중요하다. 예를 들어 반드시 다음 액세스 권한을 요청해야한다.
- 위치, 건강, 재산, 연락처, 개인적인 식별 정보를 포함하는 개인 데이터
- 이메일, 메세지, 캘린더 데이터, 연락처, 게임 플레이 정보, 애플뮤직 활동, HomeKit 데이터, 오디오, 비디오, 사진 컨텐츠와 같은 사용자 생성 컨텐츠
- 블루투스 주변 장치, 홈 자동화 기능, Wi-Fi 연결, 로컬 네트워크와 같은 보호된 리소스
- 카메라, 마이크와 같은 장치 기능
IMPORTANT
iOS 14.5, iPadOS 14.5부터 사용자를 추적하거나 장치의 광고 식별자에 접근하려면 AppTrackingTransparency framework 를 사용해 사용자의 권한을 요청해야한다.
참조 : User Privacy and Data Use, AppTrackingTransparency framework
새로운 앱을 출시 하거나 업데이트할 때, 반드시 개인 정보 보호 관행과 수집한 개인정보 관련 데이터에 대한 상세정보를 제공해야 App Store가 제품 페이지에 정보를 표시 할 수 있다. (언제든지 이 정보를 App Store Connect에서 관리할 수 있다.) 사람들은 앱을 다운받기 전에 정보에 근거한 결정을 내리기 위해 제품 페이지에서 개인 정보 세부 정보를 사용한다.
참조 : App privacy details on the App Store

Requesting Access Permission
사용자 데이터 또는 보호된 리소스를 사용하기 전에 반드시 사람들의 허가를 받아야 한다.
Request permission only when your app clearly needs access to the data or resource.
- 사람들이 개인적인 정보 또는 장치 기능에 대한 액세스 권한을 요청하는 것에 대해 의심하는 것은 자연스러운 것이다. 특히 명백하게 필요한 경우가 아니라면 더욱 그렇다.
- 이상적으로, 사람들이 실제로 액세스가 요구되는 앱의 기능을 사용할 때까지 권한을 요청하는 것을 기다린다.
- 위치 요청의 경우, 위치 버튼을 사용하면 사람들에게 즉시 위치를 공유할 수 있는 방법을 제공한다.
- 참조 : 위치 버튼 사용
Request permission at launch only when the data or resource is necessary for your app to function.
- 사람들은 앱이 명백하게 정보가 필요할 때 launch-time 요청으로 인해 괴로워할 가능성이 적다.
- 만약 사람들이 앱을 실행하는 즉시 앱추적을 하려면, 추적 데이터를 수집하기 전에 시스템에서 제공하는 알림을 반드시 보여줘야한다.
시스템은 개인 정보 또는 보호된 리소스에 대한 액세스 요청을 사람들이 볼 수 있도록 표준 alert를 제공한다. 앱에 items이 필요한 이유를 설명을 제공하면 시스템은 alert에 이 설명을 표시한다. 사람들은 설정의 개인 정보 보호에서 설명을 보고 업데이트를 선택 할 수 있다.
Write copy that clearly describes how your app uses the data or resource you're requesting.
- 표준 alert는 앱이름 뒤와 사람들이 권한을 부여하거나 취소하는데 사용하는 버튼 앞에 copy(purpose string or usage description string)를 보여준다
- 거짓이 없고 구체적이며 이해하기 쉽고 짧고 완전한 문장을 목표로 해야한다.
- 문장의 경우 수동태를 피하고 끝에 마침표를 포함해야한다.
- 참조 : 보호된 리소스에 대한 액세스 요청, 앱 추적 투명성
| Example purpose string | Notes | |
![]() |
앱은 코골이 소리를 감지하기 위해 밤 동안 녹음한다. | 앱이 데이터를 어떻게 그리고 왜 수집하는지 명백하게 설명하는 활성 문장이다. |
![]() |
마이크 액세스 권한은 더 나은 경험을 위해 필요하다. | 모호하고 분명하지 않은 정당성을 제공하는 수동태이다. |
![]() |
마이크 액세스 권한을 켠다. | 정당성을 제공하지 않는 명령문이다. |



Using the Location Button
- iOS 15이상에서, Core Location은 앱이 작업이 필요한 순간에 위치에 액세스 할 수 있는 임시권한을 부여하는 버튼을 제공한다.
- location 버튼의 형태가 앱에 일치하도록 다양할 수는 있지만, 항상 즉각적으로 인지할 수 있는 방법으로 위치 공유 작업을 전달한다.

- location 버튼은 앱에 장치의 위치를 요청할 수 있는 임시 권한을 부여한다.
- 앱이 권한을 갖지않은 경우, location 버튼을 탭하는 것은 표준 alert에서 한번만 허용을 선택할 때와 같은 효과를 가진다.
- 사람들이 이전에 "앱을 사용하는 동안"을 선택한 경우 location 버튼을 탭해도 앱 상태를 변경하지 않는다.
- 참조 : LocationButton(SwiftUI), CLLocationButton(Swift)
사람들이 앱을 처음 열고 location 버튼을 탭하면, 시스템은 표준 alert을 표시한다. alert는 사람들이 버튼을 사용해 앱의 위치 액세스를 제한하는 방법을 이해하는 것을 돕고 공유가 시작될 때 나타나는 위치 표시기를 상기시킨다.

사람들이 버튼의 동작에 대한 이해를 확인한 후, 위치에 액세스하는 일회성 권한을 주고 싶을 때 location 버튼을 간단하게 탭한다. 비록 앱의 사용을 중단하면 각 일회성 승인이 만료되지만, 버튼의 동작에 대한 이해를 재확인할 필요는 없다.
Consider using the location button to give people a lightweight way to share their location for specific app features.
- 예를 들어 앱은 사람들이 그들의 위치를 메시지 또는 게시물에 첨부하고, 매장을 찾거나 자신의 위치에서 만난 건물, 식물, 동물을 식별하는 것을 돕는다.
- 사람들이 앱에 "한 번만 허용" 권한을 종종 사용하는 것을 안다면, location button을 사용하여 alert과 상호작용 없이 위치를 공유하는 이점을 고려해야한다. (앱을 사용하는 동안이 아닌 매번 일회성 권한을 부여 한다면 location 버튼을 따로 만드는게 좋음 )
Consider customizing the location button to harmonize with your UI.
- "현재 위치" 또는 "나의 현재 위치 공유"와 같은 가장 적합한 시스템 제공 제목을 선택해야한다.(가장 적합한 이름을 사용)
- 채워지거나 윤곽선이 표시된 location 글자체를 선택해야한다.
- 제목과 글자체의 배경색과 색상을 선택해야한다.
- 버튼의 코너에 radius를 적용해라 (모서리 둥글게)
location 버튼을 사람들이 인식하고 신뢰할 수 있도록, 다른 시각적인 속성은 커스텀화 하지 않는다.(할 수 없다?) 시스템은 대비가 낮은 색상의 조합 또는 너무 많은 반투명도와 같은 문제에 대해 경고하여 location 버튼을 읽기 쉽도록 해야한다. 문제를 수정하는 것 외에도 텍스트가 버튼에 맞는지를 확인해야한다. 예를 들어 버튼 텍스트는 모든 접근성 텍스트 크기와 다른 언어로 번역될 때 잘림 없이 잘 맞아야 한다.
IMPORTANT
시스템이 커스텀된 location 버튼과 관련된 일관된 문제를 식별하는 경우, 사람들이 탭할 때 앱에 장치 위치에 대한 액세스 권한을 주지 않는다. 이러한 버튼은 앱별 작업을 수행할 수 있지만, 사람들의 예상대로 버튼이 작동하지 않으면 앱에 대한 신뢰를 잃을 수 있다.
Using the Microphone in a ShazamKit App
ShazamKit은 오디오 샘플을 ShazamKit 카탈로그 또는 커스텀 오디오 카탈로그에 매칭시켜 오디오 인식을 가능하게 한다. iOS 15이상에서 앱은 ShazamKit을 사용하여 다음과 같은 기능을 활성화할 수 있다.
- 현재 재생 중인 음악 장르와 일치하는 graphics로 앱 경험을 향상
- 오디오와 동기화 되는 자막(closed caption) 또는 수화(sign language)를 제공함으로써 청각 장애가 있는 사람들이 미디어 컨텐츠에 액세스
- 온라인 학습, retail과 같은 맥락에서virtual 컨텐츠와 인앱 경험 동기화
앱이 인식할 오디오 샘플을 가져오기 위해 장치마이크가 필요한 경우 반드시 액세스 요청을 해야한다. 모든 유형의 권한 요청과 마찬가지로 액세스를 왜 요청하는지 이해하도록 돕는 것이 중요하다.
참조 : Requesting Access Permission

ShazamKit이 활성화된 기능에 대한 액세스 권한을 받은 후 다음 지침을 따라야한다.
Stop recording as soon as possible
- 사람들이 앱이 인식을 위해 오디오를 녹음하도록 허용할 때 마이크가 켜져 있을 것이라고 기대하지 않는다.
- 개인정보를 보호하기 위해 필요한 샘플을 얻는데 걸리는 시간 동안만 기록해야한다.(샘플에 필요한 만큼만 기록해라)
Let people opt in to storing your app's recognized songs to their iCloud library.
- 앱이 인식된 노래를 iCloud에 저장할 수 있는 경우 사람들에게 먼저 작업을 승인할 수 있는 방법을 제공하야한다.
- 음악 인식 컨트롤과 Shazam 앱은 모두 앱을 인식된 음악의 source로 표시하지만 사람들은 라이브러리에 컨텐츠를 저장할 수 있는 앱을 제어 할 수 있는 점을 높게 평가한다.
- 참조 : ShazamKit
Displaying Custom Messaging Before the Alert
이상적으로 사람들은 맥락에 따라 권한을 요청하는 이유를 알고 있지만 추가 세부 정보를 제공해야하는 경우 alert가 표시되기 전에 커스텀 메시지를 보여줄 수 있다.
Make it clear that opening the system alert is the only action people can take in your custom-messaging screen.
- 사람들이 pre-alert 메시지를 지연 전략으로 해석할 수 있으니 빠르게 메시지를 무시하고 시스템 alert를 볼 수 있게 하는 것이 중요하다.
- 개인 정보 관련 권한 요청에 앞서 커스텀 화면을 표시하는 경우 시스템 alert를 표시해야 하는 하나의 작업만 제공해야 한다.
- "계속"과 같은 단어를 사용하여 작업의 제목을 정한다.
- 커스텀 화면에서 그들의 권한을 부여하거나 다른 작업을 수행하고 있다고 생각하게 만드는 "허락" 또는 다른 용어를 사용하지 말아야 한다.


Clarifying Tracking Requests
앱 추적은 민감한 문제이다. 경우에 따라 추적의 이점을 명확하게 설명하는 커스텀 메세지를 표시하는 것이 합리적이다.
Never precede the system-provided alert with custom messaging that could confuse or mislead people. (커스텀 메시지를 먼저 보이지 마라?)
사람들은 때때로 alerts를 읽지않고 무시하기 위해 빠르게 탭한다. 이러한 행동을 이용해 선택에 영향을 미치는 이점을 가지는 커스텀 메시지 화면은 앱 스토어 검토에서 거부될 것이다.
거절을 유발하는 여러 금지된 커스텀 메시지 디자인이 있다. 몇 가지 예는 인센티브 제공, 요청처럼 보이는 화면 표시, alert 이미지 표시,alert 뒤에 화면에 주석달기(아래 참조) 이다. 참조 : App Store Review Guidelines: 5.1.1 (iv)
| Incentive | Imitation request | Alert image | Alert annotation |
![]() |
![]() |
![]() |
![]() |
| 요청 승인에 대한 인센티브를 제공하지 말아야한다. 사람들에게 권한 부여에 대한 보상을 제공할 수 없으며, 추적을 허용할 때까지 기능이나 컨텐츠를 보류하거나 앱을 사용할 수 없게 만들 수 없다. | 시스템 alert의 기능을 따라하는 커스텀 메시지를 표시하지 말아야한다. 특히 "허용" 또는 유사한 단어를 사용하는 버튼 제목을 만들지 말아야한다. 사람들이 pre-alert화면에서 아무것도 허용하지 않기 때문이다. | 표준 alert의 이미지를 표시하지 말고 어떤 식으로든 수정해야한다. | 시스템 alert의 허용 버튼에 사람들의 주의를 끄는 시각적 신호를 그리지 말아야한다. |
Accessing User Data - App Architecture - iOS - Human Interface Guidelines - Apple Developer
Accessing User Data and Resources User privacy is paramount. To help people trust your app, it’s crucial to be transparent about the privacy-related data and resources you require and how you use them. For example, you must request permission to access:
developer.apple.com
'HIG' 카테고리의 다른 글
| [HIG] User Interaction-3D Touch (0) | 2021.10.22 |
|---|---|
| [HIG]App Architecture - Settings (0) | 2021.10.22 |
| [Human Interface Guidelines] App Architecture - Navigation (0) | 2021.10.12 |
| [Human Interface Guidelines] App Architecture - Modality (0) | 2021.10.11 |
| [Human Interface Guidelines] App Architecture - Loading (0) | 2021.10.06 |
- Total
- Today
- Yesterday
- ios
- Swift
- HIG
- 온라인저지
- Human Interface Guideline
- storage
- Human Interface Guidelines
- 디자인패턴
- 백준
- Firebase
- 오토레이아웃
- UIView
- 분할정복
- HumanInterfaceGuidelines
- DP
- 부스트코스
- MVC
- 싱글톤
- 알고리즘
- apple
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |







