Supabase 애플 로그인 연동, 패키지명만 넣으면 안 되는 이유 (Services ID 설정 필수!)

2026. 5. 12. 10:16GAME/개발

오늘은 Supabase에서 애플 로그인(Apple Auth)을 연동할 때 많은 개발자가 삽질하는 'Client ID' 설정에 대해 정리해 보려 합니다.

구글링을 해보면 단순히 "iOS 패키지명(Bundle ID)만 입력하면 된다"는 글이 상단에 뜨는 경우가 많습니다. 하지만 실제로는 Services ID를 생성해서 함께 등록해 주어야 웹이나 서버 환경에서 인증 오류 없이 정상 작동합니다. 그 이유와 정확한 설정법을 공유합니다.


1. 왜 패키지명(Bundle ID)만으로는 부족할까?

네이티브 iOS 앱 자체에서만 로그인을 처리한다면 패키지명으로 충분할 수 있습니다. 하지만 Supabase는 서버 대 서버(Server-to-Server) 방식으로 애플 인증 서버와 통신하여 사용자 정보를 검증합니다.

이때 애플은 보안상의 이유로 웹/서버 전용 식별자인 'Services ID'를 요구합니다. 만약 Supabase 설정창에 패키지명만 덜렁 넣어두면, 인증 후 앱으로 돌아오는 과정(Callback)에서 redirect_uri_mismatch나 invalid_client 에러를 마주하게 됩니다.

2. 해결 방법: Services ID 생성 및 등록 (3단계)

STEP 1. Apple Developer에서 Services ID 생성

  1. Identifiers 메뉴에서 + 버튼을 누르고 Services IDs를 선택합니다.
  2. Identifier를 입력할 때, 기존 패키지명 뒤에 .sid나 .signin을 붙여서 만듭니다. (예: com.pellongsoft.myapp.sid)
  3. 생성된 항목을 클릭하고 [Configure] 버튼을 누릅니다.

STEP 2. Web Authentication 설정 (가장 중요!)

여기서 Supabase와의 연결 고리를 만들어줘야 합니다.

  • Primary App ID: 현재 개발 중인 앱의 패키지명을 선택합니다.
  • Domains and Subdomains: Supabase 프로젝트의 주소에서 https://를 뺀 도메인만 입력합니다.
  • Return URLs: Supabase 설정창 하단에 있는 Callback URL (for OAuth) 전체 주소를 복사해서 붙여넣습니다.

 

STEP 3. Supabase 설정창 업데이트

마지막으로 Supabase 대시보드의 Apple Provider 설정으로 돌아옵니다.

  • Client IDs 칸: 기존 패키지명 옆에 쉼표(,)를 찍고, 방금 만든 Services ID를 추가로 입력합니다.
  • 예: com.pellongsoft.myapp, com.pellongsoft.myapp.sid


3. 마무리하며

애플 로그인은 보안이 철저한 만큼 설정할 것이 많습니다. Team ID, Key ID, 그리고 .p8 파일의 Secret Key 내용까지 모두 정확히 입력했는지 다시 한번 확인해 보세요.