피드로 돌아가기
How to add Apple Game Center leaderboards to an Expo app
Dev.toDev.to
Frontend

Expo 환경 내 Game Center 연동을 위한 Local Native Module 설계 및 배포 전략

How to add Apple Game Center leaderboards to an Expo app

Mario Prieta Sánchez2026년 4월 23일7intermediate

Context

Expo 기본 SDK 내 Game Center 전용 패키지 부재로 인한 기능 구현 제약 발생. Apple의 비정형적인 승인 프로세스와 OS 버전별 API 파편화로 인해 단순 라이브러리 도입 이상의 네이티브 브릿지 설계 필요.

Technical Solution

  • npx create-expo-module을 통한 Local Native Module 구축으로 Swift 기반 GameKit API 직접 제어
  • Promise 기반 호출의 한계를 극복하기 위해 onAuthStateChanged Event-Driven 구조를 도입하여 인증 상태 동기화 최적화
  • hasSetHandler 플래그를 통한 authenticateHandler 중복 할당 방지로 Promise Orphan 현상 제거
  • #available(iOS 18.0, *) 조건부 컴파일을 적용하여 하위 버전 호환성 확보 및 GKGameCenterViewController 진입 경로 분기 처리
  • Config Plugin 기반 Entitlements.plist 자동 설정을 통해 Native Project 직접 수정 없는 일관된 빌드 환경 구축
  • App Store Connect(ASC)의 수동 심사 요청 프로세스를 통한 Binary와 Game Center Component의 동시 배포 보장

- Expo 프로젝트 내 네이티브 기능 필요 시 Local Module과 Config Plugin을 결합한 아키텍처 검토 - 비동기 콜백이 잦은 네이티브 API 연동 시 Promise와 Event Emitter를 혼합한 상태 관리 패턴 적용 - iOS 버전별 신규 API 도입 시 Fallback 전략 수립 및 조건부 컴파일 적용 여부 확인 - ASC 배포 시 Binary 외의 컴포넌트(Leaderboards 등)가 동일한 Draft Submission에 포함되었는지 최종 검증

원문 읽기