4.2 KiB
4.2 KiB
Milestone: macOS 배포와 sandbox 검증
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/security-distribution/PHASE.md
목표
AppSok을 사내 Mac에서 안정적으로 실행할 수 있도록 signing, notarization 또는 MDM 배포 후보를 정리하고, sandbox 상태에서 Jenkins network, Keychain, ADB 실행이 가능한지 검증한다.
상태
[계획]
승격 조건
- 없음
구현 잠금
- 상태: 잠금
- 잠금 해제 조건: 사용자 리뷰에서 아래 항목을 승인하거나 방향을 결정할 때까지 signing/notarization/배포 자동화 구현을 시작하지 않는다.
- 결정 필요: 사용자 리뷰 체크리스트
- 사용자 표시명은
AppSok으로 통일하고, URL scheme/package/bundle id의 소문자appsok식별자는 유지하는 방향을 최종 승인한다. - 사내 배포 경로를 Developer ID/notarization, MDM, unsigned internal build 중 무엇으로 할지 결정한다.
- 원격 Mac runner의
Developer ID Application: Dongmyung Lee (AWA82DP9WD)identity를 AppSok 배포 signing identity로 사용할지 승인한다. notarytoolKeychain profile 이름과 Apple notary credential 세팅 주체를 확정한다.- notarization 후
stapler로 ticket을 붙인.app,.zip,.dmg,.pkg중 어떤 산출물을 배포할지 결정한다. - "아무 맥에서나 설치" 범위를 Apple Silicon only로 볼지, Intel Mac까지 포함하는 universal build로 볼지 결정한다.
- sandbox를 유지할지, ADB 실행 때문에 sandbox 해제가 필요한지 검증한다.
- ADB binary를 앱에 bundle할지, 사용자 환경의 Android Platform Tools를 사용할지 결정한다.
- 사용자 표시명은
범위
- macOS app bundle metadata
- entitlement와 sandbox 검증
- Keychain/network/ADB 실행 smoke test
- Developer ID signing, notarization, staple, MDM 배포 후보 문서화
기능
Epic: [runtime] macOS runtime 검증
앱이 실제 사내 Mac에서 필요한 외부 자원에 접근할 수 있는지 확인한다.
- [network] sandbox 상태에서 Jenkins HTTPS 호출이 가능한지 확인한다.
- [keychain]
flutter_secure_storageKeychain read/write가 배포 build에서 동작하는지 확인한다. - [adb-exec] sandbox 상태에서
adb devices -l과adb install실행 가능 여부를 확인한다. - [url-scheme]
appsok://URL scheme이 설치된 앱으로 전달되는지 확인한다.
Epic: [distribution] 배포 방식
엔드유저가 경고 없이 설치하고 실행할 수 있는 사내 배포 방식을 정한다.
- [bundle-id] bundle id와 앱 표시 이름 정책을 확정한다.
- [signing] Developer ID signing/notarization 또는 MDM 배포 절차를 문서화한다.
- [notary-profile]
notarytoolKeychain profile 존재 여부와 세팅 절차를 비밀값 없이 문서화한다. - [staple-assess] notarization 후 stapling과
spctl --assess검증 절차를 문서화한다. - [arch-policy] Apple Silicon only 또는 universal build 배포 정책을 문서화한다.
- [platform-tools] ADB binary 제공 방식과 업데이트 책임을 정한다.
- [release-checklist] 배포 전 검증 checklist를 작성한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 모든 기능 Task와 Task 안에 명시된 검증 충족 후 기록한다.
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- Auth Broker 또는 Jenkins plugin 구현
- 중앙 감사 서버
- Windows/Linux desktop target
작업 컨텍스트
- 관련 경로:
macos/Runner/,macos/Runner.xcodeproj/,pubspec.yaml - 표준선(선택): sandbox는 가능한 유지하고, 불가능한 경우 사유와 대안을 문서화한다.
- 선행 작업: 사용 가능한 MVP
- 후속 작업: Auth Broker와 Jenkins Plugin 후보 검토
- 확인 필요: 구현 잠금의 사용자 리뷰 체크리스트가 AppSok 표시명 승인, Developer ID 사용 승인, notary credential profile, 배포 산출물 형식, universal build 필요 여부, 조직 배포 정책, sandbox/ADB 실행 검증, ADB binary 제공 방식을 다룬다.