본문 바로가기
# 애플 [Apple]/macOS

[🍎 macOS] App Sandbox

by cy_mos 2021. 11. 24.
반응형

App Sandbox Design Guide

 

App Sandbox는 권한 부여를 통하여 요청 된 리소스에 대한 애플리케이션 접근을 제한하여 시스템 자원 및 사용자 데이터를 보호하는 기능입니다.

 

아래의 이미지와 같이 App Sandbox 권한 부여 작업을 할 수 있는 자원 (Resource) 목록은 아래와 같습니다.

 

App Sandbox Resource Entitlement

 

  • Hardware (Camera, Microphone, USB, Printer)
  • Network Connections (Inbound or Outbound)
  • App Data (Calendar, Location, Contacts)
  • User Files (Downloads, Pictures, Music, Movies, User Selected Files)

 

또한, 외부의 경로에 파일을 생성하거나 접근하기 위해서는 임시적 예외 권한을 주어야 합니다. 그에 대한 권한 목록은 아래와 같으며 세부적인 내용은 App Sandbox Temporary Exception Entitlements 문서를 확인해주세요.

 

  • Apple Event Temporary Exception
  • Audio Unit Hosting Temporary Exception
  • Global Mach Service Temporary Exception
  • Global Mach Service Dynamic Registration Temporary Exception
  • File Access Temporary Exceptions
  • IOKit User Client Class Temporary Exception
  • Shared Preference Domain Temporary Exceptions

 

[제약사항]

  • OSX 10.7 Lion 운영체제 이상의 운영체제에서 작동이 되며 Apple App Store 애플리케이션을 등록하기 위해서는 필수적으로 적용해야 합니다. 하지만, 외부 배포를 사용하는 경우에는 선택 사항입니다.
  • Apple Developer Certificate 통하여 Code Sign이 되어 있어야 합니다.
  • 64비트 형식의 애플리케이션으로 개발을 하여야 합니다.

 

[개발 시 주의사항]

  • UDS (Unix Domain Socket)을 통한 통신에 사용되는 local Socket 파일은 File Access Temporary Exceptions 예외 권한을 주어도 적용이 되지 않습니다. Group Containers 및 Sandbox App 내부에서 통신을 하여야 합니다.

🚀 REFERENCE

 

Apple Developer Documentation

 

developer.apple.com

 

Sandboxing for macOS - Free Pascal wiki

│ English (en) │ Overview Sandboxing was introduced in 10.7 Lion and is a requirement for all Apple App Store applications. You can also sandbox applications which you distribute outside the App Store, but it is not required. Sandboxing is an access c

wiki.lazarus.freepascal.org

반응형

댓글