https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy
"Secure personal data, and respect user preferences for how data is used."
개인 데이터의 보안을 보장하고, 데이터가 어떻게 사용될 것인지에 대한 사용자 preference를 존중해줄 수 있도록 합니다.
사용자의 개인정보에 대한 설계는 중요합니다. 대부분의 애플 기기는 사용자가 앱이나 외부의 어떤 것에 노출되지 않기를 원하는 개인 정보를 포함합니다. 앱이 데이터를 부적절하게 접근하거나 사용하려고 한다면, 사용자는 앱 사용을 중단하고, 심지어 기기에서 앱을 삭제할 것입니다.
관련 법에 따라 사용자의 동의를 얻은 경우에만 사용자 데이터 혹은 기기 데이터에 접근할 수 있도록 해야 합니다. 더불어 사용자 데이터와 기기 데이터를 보호하기 위해 적합한 단계를 수행해야 합니다. 그리고 어떻게 사용하고 있는지에 대해 투명해야 합니다.
아래 문서를 참고하시기 바랍니다.
위치, 연락처, 사진과 같은 민감한 사용자 데이터 혹은 기기 데이터에 대한 요청은 앱이 데이터가 필요한 시점에만 접근하도록 요청해야 합니다. 시스템이 앱에서 왜 접근이 필요한지에 대한 내용을 사용자에게 제공할 수 있도록 앱의 Info.plist 파일에서 목적 스트링(사용 설명 스트링이라고도 하는)을 제공해야 합니다. 사용자가 요청한 데이터에 접근을 승인하지 않은 경우에 대한 합리적인 대체 동작을 제공해야 합니다. 더 많은 정보는 Requesting Access to Protected Resources를 살펴보시기 바랍니다.
Requesting Access to Protected Resources
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
https://velog.io/@panther222128/Requesting-Access-to-Protected-Resources
예를 들어 앱스토어에 앱을 제출할 때, 앱스토어 커넥트 메타데이터로써 개인정보 보호 정책 혹은 안내문에 대한 URL을 구체화하기 바랍니다. 앱 설명에서 정책 혹은 안내문을 요약해서 보여줄 수도 있습니다.
사용자의 preference를 존중해야 합니다. 그리고 앱에서 수집하려는 데이터를 보호하기 위한 합리적인 단계를 취해야 합니다.
NSAppTransportSecurity
에 설명되어 있는 것처럼 App Transport Security를 사용하시기 바랍니다.ASIdentifierManager
클래스를 사용하는 경우 isAdvertisingTrackingEnabled
속성 값을 준수하시기 발바니다. 만약 사용자가 해당 속성을 false
로 설정하면, frequency capping, attribution, conversion events, estimating the number of unique users, advertising fraud detection, and debugging과 같은 제한된 광고 목적에서만 ASIdentifierManager
클래스를 사용하시기 바랍니다. AdSupport framework for additional information을 살펴보시기 바랍니다.UIDevice
클래스의 identifierForVendor
속성 혹은 ASIdentifierManager
클래스의 advertisingIdentifier
속성을 사용하시기 바랍니다.필요한 작업을 수행하기에 최소한의 사용자 데이터 혹은 기기 데이터를 요청하고 사용하시기 바랍니다.불필요하거나 합리적이지 않은 이유로 데이터에 접근하거나 수집하려고 하지 않아야 합니다. 당장이 아닌 나중에 유용할 것 같다고 판단되는 경우에도 그렇습니다.
오디오 입력을 지원하는 앱의 경우 실제로 레코딩을 시작하고자 하려는 시점에서만 레코딩을 위한 오디오 세션을 설정하시기 바랍니다. 당장 녹음이 필요한 경우가 아니라면 launch 타임에 레코딩을 위한 오디오 세션을 설정하지 않아야 합니다. 레코딩을 위한 오디오 세션을 앱이 설정하려고 할 때 시스템은 사용자에게 경고를 보냅니다. 그리고 사용자에게 앱에서 레코딩을 비활성화할 수 있는 옵션을 제공합니다.
보호된 리소스에 대한 접근이 왜 필요한지 사용자에게 설명하는 목적 스트링을 제공합니다.
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources
https://velog.io/@panther222128/Requesting-Access-to-Protected-Resources
디스크에서 암호화함으로써 iOS에서 사용자의 데이터를 보호합니다.
https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/encrypting_your_app_s_files
https://velog.io/@panther222128/Encrypting-Your-Apps-Files
iOS와 tvOS 앱을 위해 UIKit과 Xcode가 제공하는 기본적인 지원사항에 대해 배울 수 있는 글입니다.
https://developer.apple.com/documentation/uikit/about_app_development_with_uikit
https://velog.io/@panther222128/About-App-Development-with-UIKit