엔터프라이즈 앱 배포·MDM 통합
App Store·Play Store 심사, 엔터프라이즈 사이닝, MDM 배포 자동화
핵심 요약
- 배포 채널은 스토어, TestFlight/Play internal, internal distribution, MDM/EMM, OTA 다섯으로 나뉘며 각 채널마다 EAS Build·Submit·Update 흐름이 다릅니다.
- SDK 56 Expo Go는 스토어에 일반 배포되지 않으므로 프로덕션 조직은 QA 표준을 development build와 internal distribution build로 둡니다.
- EAS Submit 자격 증명은 개인 계정 대신 조직 service account와 역할 권한을 쓰고, Apple API key와 Google service account JSON은 EAS/CI secret으로 관리합니다.
- MDM 통합은 managed config 검증, certificate trust 예외, 강제 업데이트 정책, data protection, PII 최소 로그를 점검 포인트로 둡니다.
- SDK 56은 iOS 16.4+ 최소이므로 지원 종료 기기를 공지하고, binary rollout과 OTA rollout을 동시에 진행하지 않습니다.
배포 채널
| 채널 | 대상 | Expo/EAS 권장 흐름 |
|---|---|---|
| App Store / Play Store | 일반 사용자 | EAS Build production + EAS Submit |
| TestFlight / Play internal testing | QA, 베타 고객 | EAS Build preview 또는 production candidate |
| Internal distribution | 임직원, 제한 테스터 | EAS Build distribution: internal |
| MDM / EMM | 관리형 기업 단말 | Apple Business Manager, Managed Google Play, MDM vendor |
| OTA | 설치된 호환 binary | EAS Update channel·branch·runtimeVersion |
Expo Go 정책
SDK 56의 Expo Go는 App Store와 Google Play Store에 일반 배포되지 않는다고 공식 문서에 명시돼 있습니다. 그래서 프로덕션 조직은 Expo Go를 QA 표준으로 쓰지 않고, development build와 internal distribution build를 표준 테스트 단위로 둡니다.
EAS Submit 기준
{
"submit": {
"production": {
"ios": {
"appleId": "release@company.com",
"ascAppId": "1234567890"
},
"android": {
"track": "production"
}
}
}
}Submit credentials는 개인 계정보다 조직 service account와 역할 기반 권한을 먼저 씁니다. Apple API key와 Google service account JSON은 EAS secret이나 CI secret으로 관리해 PR 로그에 노출되지 않게 합니다.
MDM 통합 포인트
| 영역 | 체크 |
|---|---|
| Managed configuration | tenant, region, API base URL을 앱 시작 시 검증 |
| Certificate trust | 사내 프록시·TLS inspection 환경에서 pinning 정책 예외 정의 |
| App update policy | 강제 업데이트, staged rollout, 업무시간 배포 제한 |
| Data protection | managed open-in, clipboard, backup, screenshot 정책 |
| 로그 수집 | PII 제거, device/user identifier 최소화 |
Store 심사 리스크
- SDK 56은 iOS 최소 16.4+입니다. 지원 종료 기기 공지를 앱·고객지원 문서에 반영합니다.
expo/fetchglobal 교체 후 네트워크 권한·ATS 예외를 재검토합니다.- background task, location, notifications, Live Activities는 실제 사용 목적과 심사 설명이 일치해야 합니다.
- 위젯과 Live Activities의 deep link는 로그인 전후 상태 모두에서 안전하게 처리합니다.
- EAS Metadata는 Apple App Store metadata 자동화에 유용하지만 beta 상태이므로 변경 승인 절차를 둡니다.
운영 runbook
- Store binary release candidate를
preview와productionprofile로 빌드합니다. - 같은
runtimeVersion으로 OTA candidate를 preview channel에서 검증합니다. - symbol, sourcemap, mapping 업로드 완료를 확인합니다.
- MDM 대상 고객은 managed config sample과 rollback 방법을 사전 공유합니다.
- production rollout은 binary rollout과 OTA rollout을 동시에 진행하지 않습니다.
- 심사 통과 후 EAS Observe와 crash reporting을 24시간 관찰합니다.