일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- velog
- ios
- frontend
- tshaped
- 코딩테스트실력진단
- 회고
- 프로그래머스
- SWIFT
- iOSDeveloper
- git
- react
- NextJs
- UIKit
- Apple Developer Academy
- TypeScript
- 코드트리
- globalcommunity
- 프로젝트
- JavaScript
- 코드트리챌린지
- Front-end
- AppleDeveloperAcademy
- react-query
- 코딩테스트
- error
- 자바스크립트
- 알고리즘
- Xcode
- swiftUI
- 프론트엔드
- Today
- Total
Moon Work
ScreenTime API로 앱 접근 제한 및 앱 배포하기 본문
ScreenTime API
ScreenTime API는 앱 iOS, iPadOS 15이상에서 사용 가능한 애플의 디바이스 제한 프레임워크입니다.
자녀들의 기기 사용을 제한하거나, 자기 자신의 핸드폰을 제한하는 등의 기능들을 제공해주고 있습니다.
이 글에서는 ScreenTime API를 적용하고 앱을 출시하는 과정에 대해 소개해 드리겠습니다:)
주의!
혹시 ScreenTime API를 사용해서 앱을 만들고 싶으신 분들 중에 Entitlement 승인은 아직 안받으셨으면 미리 2주 정도 이후에 배포가 가능하다는 것에 대한 위로의 말씀을 드립니다..😭 자세한 내용은 아래에서!
ScreentTime API 사용해서 앱 배포하기: Null Moments
위에 프로젝트는 간단하게 시간을 지정해서 앱을 제한하고, null block을 쌓는 앱입니다. 요즘 핸드폰을 너무 많이 봐서🫠 조금 줄여보기 위해 만들었습니다. 위에 시간을 설정하고 Nulling을 시작하면 선택한 앱이 제한됩니다. 하루에 그래도 200 블록은 쌓아봐야겠어요😔
ScreenTime API도 적용하고 열심히 개발을 하고 배포를 하려는데,,
다른 API들과 다르게 ScreenTime API는 앱을 제한하고 보안과 관련이 있기 때문에 배포를 하기 전에 사전에 승인을 받아야 Distribution 버전을 사용할 수 있다는 거에요....🫠 결국 이 참에 정리하고 블로그를 쓰려고 마음먹고 ScreenTime API를 정리하기 시작했어요
ScreenTime API의 기능
ScreenTime이 제공하는 기능들은 크게 아래와 같습니다.
1. DeviceActivity: 사용자의 기기 활동에 대해 모니터링하고 프라이버시를 보호합니다.
https://developer.apple.com/documentation/familycontrols/
FamilyControls | Apple Developer Documentation
Authorize your app to provide parental controls on a device.
developer.apple.com
2. Family Control: 자녀의 핸드폰 사용을 부모가 제한할 수 있습니다.
https://developer.apple.com/documentation/ManagedSettings
ManagedSettings | Apple Developer Documentation
Access and change settings with your app while maintaining user privacy and control.
developer.apple.com
3. ManagedSettings: 자신의 기기의 설정과 기능을 제한할 수 있는 기능입니다.
https://developer.apple.com/documentation/deviceactivity/
DeviceActivity | Apple Developer Documentation
Monitor device activity with your app extension while maintaining user privacy.
developer.apple.com
1. 프로젝트 세팅
원하는 프로젝트를 생성해주세요. ScreenTime API는 iOS, iPad 15이상만 지원이 가능하니 참고하세요.
프로젝트를 생성하고 프로젝트 설정 - Singing & Capabilities에서 + Capability를 클릭해주세요.
Family Controls를 검색하셔서 Capabilities를 추가해주세요.
1. Entitlement 승인 요청
아래 링크를 클릭하셔서 로그인을 하신 뒤, AppName, App Apple ID, Bundle ID를 입력해주시고,
https://developer.apple.com/contact/request/family-controls-distribution
여기서 App Apple ID는 Appstore Connect에서 확인할 수 있습니다.
(AppstoreConnect - 앱 선택 - 왼쪽 사이드바 - 앱 정보 - App Apple ID)
로그인 - Apple
idmsa.apple.com
다른 블로그를 봤더니,,, 이 요청을 하고 몇주나 몇달은 기다려야 한다해서 해외직구를 하는 마음으로 마음을 내려 놓았습니다
오예! 워킹데이 기준 10일 후에 승인 메일을 받았어요. 승인 요청을 먼저 하고 개발을 해도 되니, 일단 요청을 하고 개발을 하시다가 승인이 되면 배포를 하시면 될 것 같아요:)
3. Capability 설정 확인
위에 메일을 받으신 뒤, 아래 certificates 페이지로 이동해주세요.
https://developer.apple.com/account/resources/certificates/list
로그인 - Apple
idmsa.apple.com
이동하신 뒤 Identifiers에서 앱 이름을 검색하셔서 앱 페이지로 이동합니다.
이동하시면 태어나서 처음보는 Additional Capabilities라는 탭이 생기신 것을 확인할 수 있어요!
아래 이미지와 같이 Distribution 버전의 Family Controls가 추가되었다면 정상적으로 배포가 가능합니다. Xcode에 들어가시면 자동으로 FamilyControls(Distribution)으로 변경된 것을 확인할 수 있어요:)
4. 배포!
위에 프로세스를 하고 난 뒤에는 정상적으로 배포가 가능합니다. 실제 코드를 통해 ScreenTime API를 사용하는 과정은 다음 글에서 이어서 보여드릴게요:)