04/28/2025 20:45:30
Apple 채널 설명
Apple 로그인에 접속하려면 반드시 Xcode 11 컴파일러를 사용해야 합니다. 또한, 실행되는 iOS 시스템 버전이 iOS 13 및 그 이상의 버전이어야 정상적으로 기능하며, 그렇지 않을 경우 로그인 시 에러코드 7(NOT_SUPPORT)가 리턴됩니다.
1 Apple Developer Potral 설정
Sign in with Apple 기능을 구현하기 전에, Apple Developer Portal 에서 아래와 같이 설정하여야 합니다:
- Team ID 획득;
- Apple 에 요청 발송 시, 요청 출처를 표시하는 client_id 만들기;
- iOS 애플리케이션에서는, client_id 가 App ID(Bundle ID)임
- Description file 만들기
- client_secret 계산을 위한 key 와 대응하는 Key ID 만들기;
1.1 Team ID 획득
- Apple Developer Portal 에 로그인, Account 클릭;
- 좌측 사이드바에서 Membership 을 클릭하면 Team ID 확인할 수 있음;
1.2 App ID 만들기
- Apple Developer Portal 에 로그인, Account 클릭;
- 좌측 사이드바에서 Certificates, IDs & Profiles 클릭;
- 좌측 사이드바에서 Identifiers 를 클릭한 뒤, 파란색 + 아이콘 클릭;
- Step 1. App IDs 을 선택하고 Continue 클릭;
- Description 과 Bundle ID 를 입력하고, Capabilities 에서 Sign in with Apple 항목 체크;
- Continue 클릭하고, Register 추가 클릭;
기존 App ID 의 경우, Sign in with Apple 을 추가하고 싶은 App ID 만 찾으면 됩니다. Capabilities 에서 Sign in with Apple 를 선택하십시오.
1.3 Description file 만들기
- Apple Developer Portal 에 로그인, Account 클릭;
- 좌측 사이드바에서 Certificates, IDs & Profiles 클릭;
- 좌측 사이드바에서 Profiles 를 클릭한 뒤, 파란색 + 아이콘 클릭;
Certificate 유형을 선택하고 Continue 클릭
이전 단계에서 등록한 App ID 를 선택하고 Continue 클릭
서명 인증서를 선택하고 Continue 클릭
디바이스 선택하고 Continue 클릭
Description file명 작성하고 Continue 클릭
Description file 다운로드를 위해 Download 클릭
다운로드한 Description file을 개발 또는 패키징환경에 설치
기존 Description file의 경우, App ID 의 Capabilities 에 Sign in with Apple 를 추가한 후, 재편집, 저장, 다운로드하면 됨
1.4 Key 만들기와 Key ID 획득
- Apple Developer Portal 에 로그인, Account 클릭;
- 좌측 사이드바에서 Keys 를 클릭한 뒤, 파란색 + 아이콘 클릭;
- Key Name 을 입력하고, Sign in with Apple 체크;
- Sign in with Apple 옆에 있는 Configure 을 클릭하고, Sign in with Apple 기능이 설정된 App ID 를 Primary App ID 로 선택하고 저장;
- Continue 클릭, Register 추가 클릭;
- Key 파일(1회만 다운로드 가능하므로, 주의하세요) 다운로드하여, Key ID 획득
위와 같은 과정으로 획득한 App ID, Team ID, Key ID, Key 파일에 있는 내용들은 게임과 연동 시 Feiying에 설정하면 됨.
2 iOS 프로젝트 설정
2.1 Xcode 에 Capability 추가
2.2 Xcode BuildPhases 설정
Xcode BuildPhases 에 AuthenticationServices.framework 추가하고, 이와 동시에 Status 를 optional 설정
3 Unity 설정
3.1 Unity XUPoter 의 xx.projmods 파일의 설정
Unity 에서 XCode 프로젝트 도출 시, projmods 파일 설정이 필요함(방법은 2.1 수동 설정과 같음)
{
"group": "MSDKApple",
"libs": [],
"frameworks": ["AuthenticationServices.framework:weak"],
"files": [],
"folders": [],
"excludes": [],
"headerpaths":[],
"build_settings": {},
"system_capabilities": {},
"Info.plist":{}
}
3.2 Unity 프로젝트에 새로운 Entitlement 파일 추가
예시:MSDKDevDemo.entitlements
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.developer.applesignin</key>
<array>
<string>Default</string>
</array>
</dict>
</plist>
Unity 에서의 Entitlement 파일 추가 방법과 관련해서는,Unity 포럼 전략을 참고하세요
https://forum.unity.com/threads/how-to-put-ios-entitlements-file-in-a-unity-project.442277/
4 인터페이스 요구사항
[human-interface-guidelines] 는 Apple에서 요구하는 인터페이스 스타일로, 명확한 요구사항이 있으니 아래 사항들을 주목해주십시오:
버튼의 외관 색깔 요구사항
로그인 버튼의 3가지 외관 조건: 화이트, 테두리가 있는 화이트, 블랙. 외관 요구사항에 적합하는 배경의 버튼을 선택해주십시오
화이트 버튼
짙은 계열 또는 컬러 배경에 사용
테두리가 있는 화이트 버튼
충분한 색상 대비가 이뤄지지 않는 화이트 또는 옅은 화이트 계열에 사용
블랙 버튼
충분한 색상 대비가 있는 화이트 또는 옅은 배경에 사용
버튼의 위치 요구사항
- 다른 로그인 버튼과 크기가 동일한 Apple 로그인 버튼 사용
- 스크롤을 내리지 않아도 버튼이 보이게 설정
- 대부분의 경우, “Apple 로 로그인” 버튼은 둥근 모서리
- 버튼을 늘리거나 압축하는 등의 이유로 비율 상의 미관적 오류가 발생해서는 안됨
- Apple 버튼은 다른 모든 로그인 방식보다 상단에 위치해야 함
그 외 다른 주의사항
Apple은 “Sign in With Apple” 과 “Continue With Apple” 두 가지 파일의 로그인 버튼(Objective-c 및 Swift 기본 사용자 인터페이스 컴포넌트)을 제공합니다. 로그인에 적합한 도큐먼트를 선택하여 사용하실 수 있으며, 도큐먼트의 언어는 모바일 디바이스 시스템 설정 언어에 따라 자동 적용됩니다
5 사용자 이름과 이메일 요청
public static void Login(string channel, string permissions = "", string subChannel = "", string extraJson = "")
public static void Login(const String &channel, const String &permissions, const String &subChannel, const String &extraJson)
파라미터 설명**
파라미터 명칭 | 파라미터 유형 | 설명 |
---|---|---|
channel | string | 채널 이름, "Apple" 입력 |
permissions | string | "email , fullName" |
subChannel | string | 추가 입력 없이 기본값 사용 |
extraJson | string | 추가 입력 없이 기본값 사용 |
Apple 로그인은 처음 권한 요청 시에만 fullName 과 email이 제공되며, 처음 라이선스 부여 시 MSDK 는 channelInfo 필드를 통해 가져올 수 있습니다
channelInfo 는 JSON 양식 문자열로, 이 중 email 과 full_name 두 필드는 Apple 에서 제공하는 이메일과 아이디입니다
아이디와 비밀번호 다시 받는 방법
설정에서 - Apple ID, Cloud, 미디어와 구매항목 - 비밀번호와 security - Appid 를 사용한 App 중 애플리케이션에 대한 라이선스를 삭제하고 다시 로그인을 하면 아이디와 이메일이 다시 제공됩니다
6 제3자 에러코드
로그인
에러코드 | 에러 정보 |
---|---|
1000 | 알 수 없는 오류 |
1001 | 사용자 취소 |
1002 | 권한 요청 무효 응답 |
1003 | 권한 요청 처리 안됨 |
1004 | 권한 부여 시도 실패 |
자동 로그인
에러코드 | 에러 정보 |
---|---|
0 | 사용자가 권한 취소 |
2 | iCloud 미등록 |
All rights reserved.