Apple 로그인은 아이폰 사용자가 가장 먼저 찾는 방식이고, iOS 앱이 다른 소셜 로그인을 제공하는 순간 App Store가 요구하는 항목입니다. Google이나 카카오와 달리 Apple은 클라이언트 시크릿을 주지 않습니다. 한 번 내려받는 비공개 키로 DontCode가 로그인마다 시크릿을 직접 서명합니다. 그래서 이 가이드는 Services ID, Team ID, Key ID, 키 파일 네 가지를 모으며, 유료 Apple Developer Program 멤버십(연 99달러)이 필요합니다.
developer.apple.com/account에 접속해 로그인하세요. Apple 로그인은 Apple Developer Program 회원만 쓸 수 있으니 무료 계정이라면 먼저 등록하세요.
사이드바의 "Membership details"를 여세요. 거기에 표시되는 10자리 코드가 Team ID입니다. 마지막 단계에서 씁니다.
"Certificates, Identifiers & Profiles" → "Identifiers" → 더하기 버튼 → "App IDs" → "App"으로 이동하세요. 설명과 명시적 Bundle ID(예: com.yourcompany.yourapp)를 입력하고, Capabilities에서 "Sign in with Apple"을 체크한 뒤 Continue, Register를 누르세요. 이미 iOS 앱용 App ID가 있다면 그것을 열어 기능만 체크하면 됩니다.
"Identifiers"로 돌아가 더하기 버튼 → "Services IDs"를 선택하세요. 설명은 Apple 로그인 화면에 사람들에게 보이는 이름이니 제품명을 쓰세요. 식별자가 DontCode에서 말하는 Services ID입니다(예: com.yourcompany.yourapp.web). 등록 후 다시 열어 "Sign in with Apple"을 체크하고 "Configure"를 누르세요. Primary App ID로 이전 단계의 App ID를 고르고, "Domains and Subdomains"에 https:// 없이 배포 도메인을, "Return URLs"에 DontCode 리다이렉트 URL을 그대로 붙여넣으세요. Next, Done, Continue, Save 순으로 누릅니다.
"Keys" → 더하기 버튼으로 이동하세요. 키 이름을 쓰고 "Sign in with Apple"을 체크한 뒤 Configure에서 같은 Primary App ID를 고르고 Save, Continue, Register를 누르세요. Apple이 Key ID를 보여주고 키 파일을 딱 한 번 제공합니다. Download를 눌러 .p8 파일을 안전한 곳에 보관하세요. 잃어버리면 키를 폐기하고 새로 만들어야 합니다.
DontCode 프로젝트에서 사용자 → 로그인 → Apple로 이동하세요. Services ID, Team ID, Key ID를 입력하고, .p8 파일을 텍스트 편집기로 열어 BEGIN PRIVATE KEY부터 END PRIVATE KEY까지 내용 전체를 비공개 키 칸에 붙여넣으세요. 저장을 누르면 앱이 다시 배포되고 몇 초 뒤 로그인 폼에 Apple 버튼이 나타납니다.
일반적인 문제는 메인 가이드의 문제 해결 섹션도 함께 확인하세요.
네 가지 값 중 하나가 맞지 않습니다. 가장 흔한 실수는 Services ID 자리에 App ID나 Bundle ID를 넣는 것입니다. Keys에서 키가 아직 활성 상태인지, 이 Primary App ID에 Sign in with Apple이 켜져 있는지, Team ID에 오타가 없는지도 확인하세요.
Services ID의 Return URL은 https://와 /api/auth/oauth/callback 경로까지 DontCode 리다이렉트 URL과 글자 하나까지 같아야 하고, 도메인은 Domains and Subdomains에 등록되어 있어야 합니다. dontcode.cafe 주소와 커스텀 도메인 등 앱이 응답하는 모든 도메인을 등록하세요.
"이메일 가리기"를 선택한 경우입니다. 이 릴레이 주소는 실제로 메일을 받지만 Apple이 아는 발신자에게서만 받습니다. 자체 도메인으로 메일을 보낸다면 개발자 계정의 "Services" → "Sign in with Apple for Email Communication"에 그 도메인을 등록하세요. 그렇지 않으면 메일이 버려집니다.
Apple은 사용자가 앱을 처음 승인할 때만 이름을 보냅니다. 그 로그인이 중간에 실패했다면, 사용자가 기기의 설정 → Apple ID → Apple로 로그인에서 앱을 제거하고 다시 로그인할 때까지 이름은 오지 않습니다.
Apple은 localhost를 거부하고 등록한 Return URL로만 돌아옵니다. 배포된 도메인에서 테스트하세요.