Skip to content

BugFix: iCloud 동기화 Pro 전용 게이팅 및 App Sandbox 배포 설정 #139

Description

@dlguszoo

🐞 버그 설명

iCloud 동기화의 Pro 전용 정책이 실제로 강제되지 않고, Mac App Store 배포를 위한 App Sandbox가 적용돼 있지 않습니다.

  • 무료 사용자가 계속 동기화됨 — Pro일 때 켠 iCloud 동기화가, free로 내려온 뒤에도 앱 실행 시마다 CloudKit 미러링(.private) 컨테이너로 만들어져 계속 동기화됩니다.
  • 온보딩이 등급을 모름 — free 신규 사용자에게 iCloud 켜기를 권하고, "Enable Sync"를 누르면 등급 게이트에 막혀 엉뚱한 "구성 불가" 알림으로 실패합니다.
  • 배포 준비 미비 — App Store 제출에 App Sandbox가 필요하며, 활성화 시 CloudKit 동기화·푸시가 끊기지 않도록 엔타이틀먼트를 함께 정비해야 합니다.

🔧 수정할 작업 목록

  • 버그 재현 — Pro로 동기화 켠 뒤 free로 내려와 두 기기가 계속 동기화되는지 확인 / 온보딩에서 free로 "Enable Sync" 눌러 실패 확인
  • 원인 분석
    • LiveStorage가 저장된 켜짐 플래그만 보고 컨테이너를 .private로 생성 (등급 미고려)
    • 전환-엣지 감지만으론 "이미 free인 상태"를 확실히 못 잡음(스트림 첫 방출 스킵)
    • OnboardingFeature가 등급을 인지하지 못함
    • App Sandbox 미적용 (+ CloudKit용 network/푸시 엔타이틀먼트 부재)
  • 수정 및 테스트
    • LiveStorage 구성 게이트 — free면 stale 플래그 무시하고 로컬 구성 + 플래그 정리
    • Pro→free 전환 시 iCloud 동기화 자동 종료 (로컬 데이터 유지)
    • 온보딩 "Enable Sync" → 페이월 연결 (이미 Pro면 페이월 없이 즉시 켜기)
    • App Sandbox + network.client(CloudKit) + aps-environment(CloudKit 푸시) 엔타이틀먼트 추가
    • 단위 테스트 추가 (LiveStorage 게이트 / 전환 자동 종료 / 온보딩 페이월)

🔗 참고 링크

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

🐞 BugFix이멀전시! 버그 수정

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions