04/28/2025 20:45:30

Guest 채널 설명

1、개요

1 개요

Guest 모드는 사용자가 게스트 모드로 로그인해 게임을 체험할 수 있는 모드로, 위챗과 모바일 Q와 같은 새로운 플랫폼 타입으로 활용할 수 있습니다. MSDK 에서 생성하는 유일한 GuestId로, 위챗의 openId 와 유사하며, 게임 내 openId 로 사용됩니다.

2、Android 게스트 설명

2 Android 게스트 설명

2.1 게스트 원리

Android GuestId 는 Android 의 UUID 에 의해 생성되며 MSDK openid 에 일일이 대응합니다. 따라서, GuestId 가 달라지면 openid 도 바뀌게 됩니다. 디바이스에 유일한 ID 는 사용자의 민감 데이터로 GDPR 및 대부분 국가 관련 법규에 부합하지 않기 때문에 GuestId 로 사용할 수 없습니다.

2.2 게스트 생성 규칙

Andorid GuestId 의 구체적인 생성 로직은 아래 그림과 같습니다

Android 게스트 생성 프로세스

2.3 게스트 ID -- UUID

UUID 전역의 유일한 식별명으로, 동일한 시공간에 있는 모든 기기의 유일함을 보장합니다.

 UUID.randomUUID().toString();

2.4 게스트 정보 상실 상황 설명

  1. 재조립 삭제, 애플리케이션 데이터 삭제 시 게스트 정보가 사라지게 됩니다.
  2. 사용자 재설정, 공장초기화 설정 상태로 되돌리면 게스트 정보가 사라지게 됩니다.
Android 게스트 정보가 쉽게 사라지는 점을 고려하여, 게임에서는 사용자에게 채널 계정으로 로그인하거나 채널 계정과 연동하는 방법으로 유도하여야 합니다.
3、 iOS 게스트 설명

3 iOS 게스트 설명

3.1 게스트 원리

MSDK iOS 는 IDFV(identifierForVendor)를 GuestID 로 사용하여 OpenID 를 생성하고, 게임에 로그인하지 않고도 체험을 할 수 있습니다. MSDK 에서 제공하는 선택적 서비스로, GuestID 를 Keychain 메모리에 기록하는데 사용됩니다. 사용자가 애플리케이션 제거 후 재설치 후에도 기존의 데이터가 저장된 동일한 GuestID 를 받아볼 수 있도록 보장합니다.

3.2 IDFV

IDFV 는 Apple 이 애플리케이션 Vendor(퍼블리셔)에 제공하는 유일한 식별번호로, 같은 Vender 의 애플리케이션 IDFV 는 동일합니다.

Vendor 와 Bundle ID 의 관계:

  • iOS 6 에서 Bundle ID 의 처음 두 개의 컴포넌트는 Vendor ID 를 생성하는데 사용됩니다. Bundle ID 에 한 개의 컴포넌트만 있는 경우,전체 Bundle ID 를 사용합니다.
  • iOS 7 에서 마지막 컴포넌트를 제외한 모든 컴포넌트는 Bundle ID 를 생성하는데 사용됩니다. Bundle ID 에 한 개의 컴포넌트만 있는 경우, 전체 Bundle ID 를 사용합니다.

[info] App Store(기업 응용과 현재 개발 중인 응용) 애플리케이션이 아닌 경우, 응용 프로그램의 Bundle ID 를 기준으로 Vendor 를 계산합니다.

Bundle ID iOS 6.x iOS 7.x
com.tencent.app1 com.tencent.app1 com.tencent.app1
com.tencent.msdk.app1 com.tencent.msdk.app1 com.tencent.msdk.app1
example example example

애플리케이션이 iOS 디바이스에 설치(또는 동일한 퍼블리셔의 다른 애플리케이션) 되어 있을 때, IDFV 의 값은 그대로 유지되며, 다음과 같은 경우에서만下 IDFV 가 바뀝니다:

  1. 디바이스 시스템의 업그레이드 또는 다운그레이드 후, 재활성화 또는 새로운 디바이스로 설정하는 경우;
  2. 디바이스 데이터 복원 및 삭제하는 경우;
  3. 사용자가 해당 퍼블리셔의 모든 애플리케이션을 디바이스에서 제거한 후, 하나 또는 여러 개의 애플리케이션을 재설치하는 경우;
  4. Xcode 를 사용하여 베타버전을 설치하거나 AD-Hoc 버플리싱 버전을 사용하여 디바이스에 애플리케이션을 설치하는 경우.

3.3 Keychain 메모리

Keychain 은 iOS 디바이스의 보안 스토리지 컨테이너로, 사용자 이름, 비밀번호, 네트워크 비밀번호, 인증토큰 과 같은 애플리케이션 별로 민감한 정보를 저장합니다. Keychain 은 시스템급 SQLite 데이터베이스로, /private/var/Keychains/keychain-3.db 에 위치해있으며, 저장된 모든 데이터는 암호화된 것입니다.

iOS 시스템 스토리지 Keychain item 의 속성은 Keychain access group 입니다. 각 애플리케이션마다 권한이 있는 Keychain item 에만 액세스할 수 있습니다. 이 권한은 애플리케이션에 서명된 description file 에서 나온 것으로, 현 App ID 의 접두어 Team ID 에 근거합니다.

iOS appID

  1. keychain sharing 를 켜면 시스템은 설정에서의 첫 번째accessGroup 을 기본값으로 사용할 수도 있습니다
  2. 첫 번째 keychain sharing 이 없거나 켜지 않은 경우, Bundle ID 를 기본 accessGroup 으로 사용합니다
  3. 사용 예시: A keychain sharing off, 데이터 저장;B keychain sharing on, A 의 Bundle ID 를 key 로 사용하여 A의 데이터 획득
  4. Bundle ID 를 첫 accessGroup 으로 추가하는 것을 권장합니다. 업그레이드 시, Bundle ID 가 아닌 accessGroup 의 삭제로 인한 데이터 분실 문제 발생 가능성을 줄일 수 있습니다

3.4 애플리케이션 양도

Apple 개발자는 구매, 취득 자산 또는 이와 유사한 상황에서 iTunes Connect 를 사용하여 조건에 맞는 애플리케이션을 다른 계정에 옮길 수 있습니다. 애플리케이션이 이동한 경우, 해당 애플리케이션은 App Store 또는 Mac App Store 에서 사용 가능한 상태로 유지되며, 모든 평점과 리뷰는 그대로 보류됩니다. 또한 사용자는 계속해서 애플리케이션의 업데이트에 액세스할 권한이 주어집니다.

애플리케이션 양도 파일 iTunes Connect Developer Help About App Transfer

애플리케이션 이동 후, App ID 는 해당 애플리케이션 개발자 계정에 따라 다른 애플리케이션으로 양도되게 됩니다. 양도된 애플리케이션의 App ID 는 새로운 Team ID 를 접두어로 하여, 구버전에서 Keychain에 데이터를 작성하였을 경우, 신규 개발 계정을 사용하여 App Store 에 애플리케이션을 업데이트 할 때 Potential Loss of Keychain Access 의 warning 을 받게 됩니다. 이는 구버전에 Keychain 데이터가 입력되어 새 버전에 액세스할 수 없게 됩니다.

[info]주의사항:
1.양도 후, 애플리케이션 Bundle ID 는 변경되지 않으며, 양도된 App ID 이 과거 Wildcard(와일드카드)App ID 였다면, 해당 App 의 Bundle ID 와 정확하게 일치하는 Explicit(명시적인)App ID 로 전환됩니다.
2.A one-time loss in keychain data will occur if you switch your App ID prefix and understand that it's not possible for a transferred app to maintain access to the prior keychain associated with the App ID prefix of the previous owner.
3.The keychain access will only be lost after an update to the app is released on the App Store.

1)애플리케이션 양도가 게스트 계정 상실에 미치는 영향

MSDK Keychain 이 실행되고 있는 상황에서 게스트의 GuestID 를 저장하는 게임이 양도되는 경우, 게스트 계정의 상실 위험이 매우 큽니다.

[info]주의사항:만약 어떠한 Keychain 메모리 기능도 사용하지 않은 경우, 애플리케이션 이동에 아무런 영향도 끼치지 않습니다.

애플리케이션의 업데이트 양도 후, Keychain 에 저장된 GuestID 는 분실이 확실하며, 게스트 로그인의 경우, 시스템 인터페이스를 호출하여 새로운 IDFV 를 획득한 뒤 다시 로그인이 시도됩니다. IDFV 가 Keychain 에 저장된 기존 IDFV 와 동일한 경우, 기존 게스트 계정이 유지됐음을 의미하며, 다른 경우 기존 게스트 계정은 상실됩니다. 따라서 게스트 계정의 분실 여부는 사용자가 구버전 App 게스트 로그인 후, 신규 버전 App 에 등록하는 동안 IDFV 값의 변경 유무 여부에 달려 있습니다.

상황에 따른 애플리케이션 이전이 게스트 계정에 미치는 영향.

구버전 제거 여부 신규버전 설치 방법 게스트 상실 여부 비고
제거 제거 후 설치 상실 IDFV 변경
제거 App Store 업데이트 상실 IDFV 변경
미제거 App Store 업데이트 보류 IDFV 변경 없음

[info]주의사항:
1、시스템 업데이트 또는 시스템 복원의 경우, 게스트 계정의 상실 상황이 벌어질 가능성이 높습니다;
2、앞서 서술된 표의 내용에는 동일한 퍼플리셔의 다른 애플리케이션이 디바이스에 설치되어 있는 경우는 고려하지 않았습니다.。



Copyright © 2025 MSDK.
All rights reserved.

results matching ""

    No results matching ""