diff --git a/en/aos-started.md b/en/aos-started.md
index 4dd0bb7f..10eb96ce 100644
--- a/en/aos-started.md
+++ b/en/aos-started.md
@@ -6,8 +6,8 @@ To execute Gamebase in Android, the following system environment is required.
> [Minimum Specifications]
>
-> * User execution environment: Android API 21 (Lollipop, OS 5.0) or higher
-> * Build environment: Android Gradle Plugin 4.0.1 or higher
+> * User execution environment: Android API 22 (Lollipop MR1, OS 5.1) or higher
+> * Build environment: Android Gradle Plugin 7.4.2 or higher
> * Development environment: Android Studio
### Dependencies
@@ -26,7 +26,6 @@ To execute Gamebase in Android, the following system environment is required.
| | gamebase-adapter-auth-payco | payco-login-1.5.15| Support PAYCO login | - |
| | gamebase-adapter-auth-twitter | - | Support Twitter login | - |
| | gamebase-adapter-auth-weibo | sinaweibosdk.core-13.5.0 | Support Weibo login | - |
-| | gamebase-adapter-auth-weibo-v4 | openDefault-4.4.4 | Support Weibo login | - |
| | gamebase-adapter-auth-kakaogame | kakaogame.idp_kakao-3.19.3
kakaogame.gamesdk-3.19.3
kakaogame.common-3.19.3
kakao.sdk.v2-auth-2.17.0
kakao.sdk.v2-partner-auth-2.17.0
kakao.sdk.v2-common-2.17.0
play-services-ads-identifier-17.0.0 | Support Kakao login | API 23(Marshmallow, OS 6.0) |
| | gamebase-adapter-auth-steam | - | Support Steam login | API 25(Nougat, OS 7.1.1) |
| Gamebase IAP Adapters | gamebase-adapter-toastiap | nhncloud-iap-core | Support in-app purchase | - |
@@ -156,6 +155,10 @@ dependencies {
implementation "com.toast.android.gamebase:gamebase-adapter-auth-weibo:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-steam:$GAMEBASE_SDK_VERSION"
+ // >>> [Purchase Support under Android 7.0(API Level 24)]
+ // desugar_jdk_libs 2.+ needs AGP 7.4+
+ coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5")
+
// >>> Gamebase - Select Purchase Adapter
implementation "com.toast.android.gamebase:gamebase-adapter-purchase-google:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-purchase-onestore-v21:$GAMEBASE_SDK_VERSION"
@@ -174,10 +177,6 @@ dependencies {
implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangamejp:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangamejpemail:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-kakaogame:$GAMEBASE_SDK_VERSION"
- // >>> [Weibo v4]
- // https://github.com/nhn/toast.gamebase.android.sample/tree/main/weibo_sdk
- implementation files('libs/openDefault-4.4.4.aar')
- implementation "com.toast.android.gamebase:gamebase-adapter-auth-weibo-v4:$GAMEBASE_SDK_VERSION"
// >>> [ONE store v16]
implementation "com.toast.android.gamebase:gamebase-adapter-purchase-onestore-v16:$GAMEBASE_SDK_VERSION"
// >>> [ONE store v17]
@@ -194,33 +193,14 @@ dependencies {
android {
compileOptions {
- // >>> [AndroidX]
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
-
- defaultConfig {
- // >>> [Weibo IdP]
- ndk {
- abiFilters 'armeabi' // , 'armeabi-v7a', 'arm64-v8a'
- }
+ // >>> [Purchase Support under Android 7.0(API Level 24)]
+ coreLibraryDesugaringEnabled true
}
}
```
### Resources
-#### Weibo IdP
-
-* Depending on your build target, download the so files from the following URLs and copy them to your project.
- * https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/so
-* In case of Android Studio build
- * Copy under the project's src/main/java/jniLibs folder.
- * 
-* In case of Unity build
- * Copy the so and foler under the Assets/Plugins/Android/libs.
- * 
-
#### Huawei Store
* You must add the AppGallery Connection configuration file (agconnect-services.json) to the assets folder.
diff --git a/en/ios-started.md b/en/ios-started.md
index 0edaadfa..674d4053 100644
--- a/en/ios-started.md
+++ b/en/ios-started.md
@@ -8,7 +8,7 @@
> Minimum specifications
>
> * User run environment : iOS 12 or later
-> * Build environment : Xcode 15 (iOS 16.1 SDK) or later
+> * Build environment : Xcode 16 (iOS 18 SDK) or later
>
diff --git a/en/release-notes-android.md b/en/release-notes-android.md
index 45dd0d2d..aa4a507f 100644
--- a/en/release-notes-android.md
+++ b/en/release-notes-android.md
@@ -1,12 +1,30 @@
## Game > Gamebase > Release Notes > Android
+### 2.73.0 (2025. 07. 15.)
+
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Android.zip)
+
+```
+The minimum supported version has been increased to Android 5.1 or later. (minSdk 21 → 22)
+The minimum Android Gradle Plugin version has been increased to 7.4.2 or later. (4.0.1 -> 7.4.2)
+```
+
+#### Feature Updates
+
+* Improved internal logic
+
+#### Bug Fixes
+
+* Fixed an issue where the login webview would incorrectly calculate margin sizes when rotating the screen.
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Android.zip)
#### 기능 개선/변경
-* 웹소켓 모듈이 중복 호출되는 경우 ArrayIndexOutOfBoundsException이 발생할 수 있는 로직 수정
+* Fixed logic that could cause ArrayIndexOutOfBoundsException when the websocket module was called multiple times.
+ * This issue only occurs in Gamebase Android SDK 2.71.2.
#### 버그 수정
diff --git a/en/release-notes-ios.md b/en/release-notes-ios.md
index 9f97963d..d76e24f7 100644
--- a/en/release-notes-ios.md
+++ b/en/release-notes-ios.md
@@ -1,5 +1,20 @@
## Game > Gamebase > Release Notes > iOS
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-iOS.zip)
+
+#### Feature Updates
+* The minimum supported version of Xcode has been changed to 16.0.
+
+#### Bug Fixes
+* Fixed a bug where the agreed terms and conditions information was not saved when calling updateTerms after logging in.
+
+### 2.72.1 (July 1, 2025)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.1/GamebaseSDK-iOS.zip)
+
+#### Feature Updates
+* Fixed a bug that caused GameCenter to crash when logging in on certain iOS 14 devices.
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-iOS.zip)
diff --git a/en/release-notes-unity.md b/en/release-notes-unity.md
index dc800d48..c5b07b8f 100644
--- a/en/release-notes-unity.md
+++ b/en/release-notes-unity.md
@@ -1,5 +1,24 @@
## Game > Gamebase > Release Notes > Unity
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unity.zip)
+
+#### Added Features
+
+#### Feature Updates
+- (Windows, macOS) Changed from webview to external browser when logging in to IdP.
+ - Supported Browsers
+ - Windows : every browser
+ - macOS : Chrome, Safari, Firefox, whale
+
+- Added external browser login cancellation API.
+ - To change the IDP during an ongoing external browser login request, cancel the existing request.
+ - CancelLoginWithExternalBrowser()
+
+#### Platform-specific Changes
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unity.zip)
diff --git a/en/release-notes-unreal.md b/en/release-notes-unreal.md
index e83987e6..008e11a6 100644
--- a/en/release-notes-unreal.md
+++ b/en/release-notes-unreal.md
@@ -1,5 +1,28 @@
## Game > Gamebase > Release Notes > Unreal
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unreal.zip)
+
+#### Feature Updates
+
+* (Windows) For IdPs that do not use SDKs, the process has been changed to proceed with external browser login.
+ * An API has been added to cancel login when an external browser login is in progress.
+ * CancelLoginWithExternalBrowser
+ * Please refer to the following guide document for how to call the API.
+ * [Game > Gamebase > Unreal SDK User Guide > Authentication> Login > Login with IdP > Cancel Login with External Browser](./unreal-authentication/#cancel-login-with-external-browser)
+* (Windows) Added a message when logging into Steam to indicate Steamworks initialization failure to help identify the cause.
+* Improved internal logic.
+
+#### Bug Fixes
+
+* Fixed EOSSDK module not being included when not using Epic Games-related features.
+* (Windows) Fixed a crash when using an unconfigured store in the console.
+
+#### Platform-specific Changes
+
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unreal.zip)
diff --git a/en/unity-authentication.md b/en/unity-authentication.md
index 903df752..0e4b9741 100644
--- a/en/unity-authentication.md
+++ b/en/unity-authentication.md
@@ -194,9 +194,7 @@ For more information on IdP types that can be used to log in, refer to the **Gam
> [Caution]
>
-> In Standalone, login is supported through WebViewAdapter. It does not block events entered via UI when WebView is open.
->
-> To log in using Standalone WebViewAdapter, the CallbackURL below must be configured on the IdP Developer website.
+> To log in to IdP in Standalone, you must set the CallbackURL below on the IdP developer site.
> - https://id-gamebase.toast.com/oauth/callback
>
@@ -284,6 +282,59 @@ public void LoginWithAdditionalInfo()
}
```
+### Login Cancel
+
+**API**
+
+Supported Platforms
+■ UNITY_STANDALONE
+
+```cs
+static void CancelLoginWithExternalBrowser()
+```
+
+**Example**
+```cs
+public void Login()
+{
+ Gamebase.Login(GamebaseAuthProvider.FACEBOOK, (authToken, error) =>
+ {
+ if (Gamebase.IsSuccess(error))
+ {
+ string userId = authToken.member.userId;
+ Debug.Log(string.Format("Login succeeded. Gamebase userId is {0}", userId));
+ }
+ else
+ {
+ // Check the error code and handle the error appropriately.
+ Debug.Log(string.Format("Login failed. error is {0}", error));
+ if (error.code == GamebaseErrorCode.AUTH_LOGIN_CANCEL_FAILED)
+ {
+ // TODO: Handle the cancellation...
+ }
+ else if (error.code == (int)GamebaseErrorCode.SOCKET_ERROR || error.code == (int)GamebaseErrorCode.SOCKET_RESPONSE_TIMEOUT)
+ {
+ Debug.Log(string.Format("Retry Login or notify an error message to the user.: {0}", error.message));
+ }
+ else if (error.code == GamebaseErrorCode.BANNED_MEMBER)
+ {
+ GamebaseResponse.Auth.BanInfo banInfo = GamebaseResponse.Auth.BanInfo.From(error);
+ if (banInfo != null)
+ {
+ }
+ }
+ }
+ });
+}
+
+public void CancelLoginWithExternalBrowser()
+{
+ // This method only initiates an asynchronous request.
+ // The result of the cancellation is handled in the callback of the Login method.
+ Gamebase.CancelLoginWithExternalBrowser();
+}
+```
+
### Login with Credential
This game interface allows authentication to be made with SDK provided by IdP, before login to Gamebase with provided access token.
diff --git a/en/upgrade-guide.md b/en/upgrade-guide.md
index eed7486c..d4befacf 100644
--- a/en/upgrade-guide.md
+++ b/en/upgrade-guide.md
@@ -1,5 +1,13 @@
## Game > Gamebase > Upgrade Guide
+## 2.71.2
+
+### Android
+
+* Gamebase Android SDK 2.71.2 has the following issues:
+ * The WebSocket module may intermittently crash with an ArrayIndexOutOfBoundsException when the network connection is lost and then recovered, or when the app is moved to the background and then brought back to the foreground.
+ * Use Gamebase Android SDK 2.72.0, which has fixed this issue.
+
## 2.70.0
### Android
diff --git a/ja/aos-started.md b/ja/aos-started.md
index e696a365..ac5b9bd0 100644
--- a/ja/aos-started.md
+++ b/ja/aos-started.md
@@ -6,8 +6,8 @@ AndroidでGamebaseを利用するためのシステム環境は、次の通り
> [最小仕様]
>
-> * 使用者実行環境:Android API21 (Lollipop, OS 5.0)以上
-> * ビルド環境:Android Gradle Plugin 4.0.1以上
+> * 使用者実行環境:Android API22 (Lollipop MR1, OS 5.1)以上
+> * ビルド環境:Android Gradle Plugin 7.4.2以上
> * 開発環境:Android Studio
### Dependencies
@@ -26,7 +26,6 @@ AndroidでGamebaseを利用するためのシステム環境は、次の通り
| | gamebase-adapter-auth-payco | payco-login-1.5.15 | Paycoログインをサポート | - |
| | gamebase-adapter-auth-twitter | - | Twitterログインをサポート | - |
| | gamebase-adapter-auth-weibo | sinaweibosdk.core-13.5.0 | Weiboログインをサポート | - |
-| | gamebase-adapter-auth-weibo-v4 | openDefault-4.4.4 | Weiboログインをサポート | - |
| | gamebase-adapter-auth-kakaogame | kakaogame.idp_kakao-3.19.3
kakaogame.gamesdk-3.19.3
kakaogame.common-3.19.3
kakao.sdk.v2-auth-2.17.0
kakao.sdk.v2-partner-auth-2.17.0
kakao.sdk.v2-common-2.17.0
play-services-ads-identifier-17.0.0 | Kakaoログインをサポート | API 23(Marshmallow, OS 6.0) |
| | gamebase-adapter-auth-steam | - | Steamログインをサポート | API 25(Nougat, OS 7.1.1) |
| Gamebase IAP Adapters | gamebase-adapter-toastiap | toast-gamebase-iap-0.21.0
nhncloud-iap-core | ゲーム内決済をサポート | - |
@@ -177,10 +176,6 @@ dependencies {
implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangamejp:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangamejpemail:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-kakaogame:$GAMEBASE_SDK_VERSION"
- // >>> [Weibo v4]
- // https://github.com/nhn/toast.gamebase.android.sample/tree/main/weibo_sdk
- implementation files('libs/openDefault-4.4.4.aar')
- implementation "com.toast.android.gamebase:gamebase-adapter-auth-weibo-v4:$GAMEBASE_SDK_VERSION"
// >>> [ONE store v16]
implementation "com.toast.android.gamebase:gamebase-adapter-purchase-onestore-v16:$GAMEBASE_SDK_VERSION"
// >>> [ONE store v17]
@@ -200,30 +195,11 @@ android {
// >>> [Purchase Support under Android 7.0(API Level 24)]
coreLibraryDesugaringEnabled true
}
-
- defaultConfig {
- // >>> [Weibo IdP]
- ndk {
- abiFilters 'armeabi' // , 'armeabi-v7a', 'arm64-v8a'
- }
- }
- }
}
```
### Resources
-#### Weibo IdP
-
-* ビルドターゲットに応じて次のURLのsoファイルをダウンロードしてプロジェクトにコピーしてください。
- * https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/so
-* Android Studioビルドの場合
- * プロジェクトのsrc/main/java/jniLibsフォルダの下にコピーします。
- * 
-* Unityビルドの場合
- * soファイルとフォルダをAssets/Plugins/Android/libsフォルダの下にコピーします。
- * 
-
#### Huawei Store
* AppGallery Connection構成ファイル(agconnect-services.json)をassetsフォルダに追加する必要があります。
diff --git a/ja/ios-started.md b/ja/ios-started.md
index c1699ce1..8b445db6 100644
--- a/ja/ios-started.md
+++ b/ja/ios-started.md
@@ -8,7 +8,7 @@
> 要件
>
> * ユーザー実行環境:iOS 12以上
-> * ビルド環境:Xcode 15.0 (iOS 17 SDK)以上
+> * ビルド環境:Xcode 16.0 (iOS 18 SDK)以上
>
diff --git a/ja/release-notes-android.md b/ja/release-notes-android.md
index e30c367a..d11a5407 100644
--- a/ja/release-notes-android.md
+++ b/ja/release-notes-android.md
@@ -1,12 +1,30 @@
## Game > Gamebase > リリースノート > Android
+### 2.73.0 (2025. 07. 15.)
+
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Android.zip)
+
+```
+최소 지원 버전이 Android 5.1 이상으로 상향되었습니다.(minSdk 21 → 22)
+Android Gradle Plugin 최소 버전이 7.4.2 이상으로 상향되었습니다.(4.0.1 -> 7.4.2)
+```
+
+#### 기능 개선/변경
+
+* 내부 로직 개선
+
+#### 버그 수정
+
+* 로그인 웹뷰에서 화면 회전시 여백 크기를 잘못 계산하는 오류를 수정했습니다.
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Android.zip)
#### 기능 개선/변경
-* 웹소켓 모듈이 중복 호출되는 경우 ArrayIndexOutOfBoundsException이 발생할 수 있는 로직 수정
+* 웹소켓 모듈이 중복 호출되는 경우 ArrayIndexOutOfBoundsException이 발생할 수 있는 로직을 수정했습니다.
+ * 이 문제는 Gamebase Android SDK 2.71.2에서만 발생합니다.
#### 버그 수정
diff --git a/ja/release-notes-ios.md b/ja/release-notes-ios.md
index 9ae61383..6e97e01f 100644
--- a/ja/release-notes-ios.md
+++ b/ja/release-notes-ios.md
@@ -1,5 +1,20 @@
## Game > Gamebase > リリースノート > iOS
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-iOS.zip)
+
+#### 기능 개선/변경
+* Xcode 최소 지원 버전이 16.0으로 변경되었습니다.
+
+#### 버그 수정
+* 로그인 후 updateTerms 호출 시, 동의한 약관 정보가 저장되지 않는 버그를 수정하였습니다.
+
+### 2.72.1 (2025. 07. 01.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.1/GamebaseSDK-iOS.zip)
+
+#### 기능 개선/변경
+* iOS 14 특정 기기에서 GameCenter 로그인 시 크래시가 발생하는 버그를 수정하였습니다.
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-iOS.zip)
diff --git a/ja/release-notes-unity.md b/ja/release-notes-unity.md
index f49da353..f7480516 100644
--- a/ja/release-notes-unity.md
+++ b/ja/release-notes-unity.md
@@ -1,5 +1,24 @@
## Game > Gamebase > リリースノート > Unity
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unity.zip)
+
+#### 기능 추가
+
+#### 기능 개선/변경
+- (Windows, macOS) IdP 로그인 시 웹뷰에서 외부 브라우저로 변경했습니다.
+ - 지원 브라우저
+ - Windows : 모든 브라우저
+ - macOS : Chrome, Safari, Firefox, whale
+
+- 외부 브라우저 로그인 취소 API를 추가했습니다.
+ - 진행 중인 외부 브라우저 로그인 요청 중 IDP 를 변경하고 싶을 때, 기존 요청을 취소하기 위함.
+ - CancelLoginWithExternalBrowser()
+
+#### 플랫폼별 변경 사항
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unity.zip)
diff --git a/ja/release-notes-unreal.md b/ja/release-notes-unreal.md
index d894caa6..b74b105a 100644
--- a/ja/release-notes-unreal.md
+++ b/ja/release-notes-unreal.md
@@ -1,5 +1,28 @@
## Game > Gamebase > リリースノート > Unreal
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unreal.zip)
+
+#### 기능 개선/변경
+
+* (Windows) SDK를 사용하지 않는 IdP의 경우 외부 브라우저 로그인으로 진행되도록 변경되었습니다.
+ * 외부 브라우저 로그인을 진행 중일 때, 로그인을 취소할 수 있는 API가 추가되었습니다.
+ * CancelLoginWithExternalBrowser
+ * API 호출 방법은 다음 가이드 문서를 참고하시기 바랍니다.
+ * [Game > Gamebase > Unreal SDK 사용 가이드 > 인증 > Login > Login with IdP > Cancel Login with External Browser](./unreal-authentication/#cancel-login-with-external-browser)
+* (Windows) Steam 로그인 시 Steamworks 초기화 실패 여부 메세지를 추가하여 원인을 파악하기 쉽도록 변경했습니다.
+* 내부 로직을 개선했습니다.
+
+#### 버그 수정
+
+* Epic Games 관련 기능을 사용하지 않을 때는 EOSSDK 모듈이 포함되지 않도록 수정되었습니다.
+* (Windows) 콘솔에서 설정되지 않은 스토어를 사용할 때 크래시가 발생하지 않도록 수정되었습니다.
+
+#### 플랫폼별 변경 사항
+
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unreal.zip)
diff --git a/ja/unity-authentication.md b/ja/unity-authentication.md
index d4201962..33c0d113 100644
--- a/ja/unity-authentication.md
+++ b/ja/unity-authentication.md
@@ -197,11 +197,9 @@ public void Login()
> Line IdPはGamebase SDK 2.43.0からLineサービス提供地域設定をできます。
> 該当地域はAdditionalInfoに設定できます。
-> [注意]
->
-> StandaloneではWebViewAdapterを通してログインをサポートし、WebViewが開かれている時、UIに入力されるEventをBlockingしません。
+> [Caution]
>
-> Standalone WebViewAdapterを使用してログインを行うにはIdP開発者サイトで以下のCallbackURLを設定する必要があります。
+> Standalone에서 IdP 로그인을 하기 위해서는 IdP 개발자 사이트에서 아래 CallbackURL을 설정 하여야 합니다.
> - https://id-gamebase.toast.com/oauth/callback
>
@@ -289,6 +287,59 @@ public void LoginWithAdditionalInfo()
}
```
+### Login Cancel
+
+**API**
+
+Supported Platforms
+■ UNITY_STANDALONE
+
+```cs
+static void CancelLoginWithExternalBrowser()
+```
+
+**Example**
+```cs
+public void Login()
+{
+ Gamebase.Login(GamebaseAuthProvider.FACEBOOK, (authToken, error) =>
+ {
+ if (Gamebase.IsSuccess(error))
+ {
+ string userId = authToken.member.userId;
+ Debug.Log(string.Format("Login succeeded. Gamebase userId is {0}", userId));
+ }
+ else
+ {
+ // Check the error code and handle the error appropriately.
+ Debug.Log(string.Format("Login failed. error is {0}", error));
+ if (error.code == GamebaseErrorCode.AUTH_LOGIN_CANCEL_FAILED)
+ {
+ // TODO: Handle the cancellation...
+ }
+ else if (error.code == (int)GamebaseErrorCode.SOCKET_ERROR || error.code == (int)GamebaseErrorCode.SOCKET_RESPONSE_TIMEOUT)
+ {
+ Debug.Log(string.Format("Retry Login or notify an error message to the user.: {0}", error.message));
+ }
+ else if (error.code == GamebaseErrorCode.BANNED_MEMBER)
+ {
+ GamebaseResponse.Auth.BanInfo banInfo = GamebaseResponse.Auth.BanInfo.From(error);
+ if (banInfo != null)
+ {
+ }
+ }
+ }
+ });
+}
+
+public void CancelLoginWithExternalBrowser()
+{
+ // This method only initiates an asynchronous request.
+ // The result of the cancellation is handled in the callback of the Login method.
+ Gamebase.CancelLoginWithExternalBrowser();
+}
+```
+
### Login with Credential
IdPが提供するSDKを使ってゲームで直接認証した後、発行されたアクセストークンなどを利用してGamebaseにログインできるインターフェースです。
diff --git a/ja/upgrade-guide.md b/ja/upgrade-guide.md
index 465a110a..6252eb7f 100644
--- a/ja/upgrade-guide.md
+++ b/ja/upgrade-guide.md
@@ -1,5 +1,13 @@
## Game > Gamebase > Upgrade Guide
+## 2.71.2
+
+### Android
+
+* Gamebase Android SDK 2.71.2는 다음 이슈가 발생합니다.
+ * 네트워크 연결이 끊어진 후 복구되거나 앱을 백그라운드로 내렸다가 포그라운드로 활성화 시킨 경우, 간헐적으로 웹소켓 모듈에서 ArrayIndexOutOfBoundsException으로 인한 크래시가 발생할 수 있습니다.
+ * 이슈가 해결된 Gamebase Android SDK 2.72.0을 사용하세요.
+
## 2.70.0
### Android
@@ -21,7 +29,6 @@
}
* desugar_jdk_libs 1.xバージョンはKakaogameログイン時にクラッシュが発生するため、2.xバージョンの適用を推奨します。
-
* Unity EditorのバージョンによってAGPバージョンが異なるため、AGPおよびGradleバージョンのアップデートが必要な場合があります。
## 2.69.0
diff --git a/ko/aos-started.md b/ko/aos-started.md
index ced6c6de..562c7105 100644
--- a/ko/aos-started.md
+++ b/ko/aos-started.md
@@ -6,8 +6,8 @@ Android에서 Gamebase를 사용하기 위한 시스템 환경은 다음과 같
> [최소 사양]
>
-> * 사용자 실행 환경: Android API 21(Lollipop, OS 5.0) 이상
-> * 빌드 환경: Android Gradle Plugin 4.0.1 이상
+> * 사용자 실행 환경: Android API 22(Lollipop MR1, OS 5.1) 이상
+> * 빌드 환경: Android Gradle Plugin 7.4.2 이상
> * 개발 환경: Android Studio
### Dependencies
@@ -26,7 +26,6 @@ Android에서 Gamebase를 사용하기 위한 시스템 환경은 다음과 같
| | gamebase-adapter-auth-payco | payco-login-1.5.15 | PAYCO 로그인을 지원 | - |
| | gamebase-adapter-auth-twitter | - | Twitter 로그인을 지원 | - |
| | gamebase-adapter-auth-weibo | sinaweibosdk.core-13.5.0 | Weibo 로그인을 지원 | - |
-| | gamebase-adapter-auth-weibo-v4 | openDefault-4.4.4 | Weibo 로그인을 지원 | - |
| | gamebase-adapter-auth-kakaogame | kakaogame.idp_kakao-3.19.3
kakaogame.gamesdk-3.19.3
kakaogame.common-3.19.3
kakao.sdk.v2-auth-2.17.0
kakao.sdk.v2-partner-auth-2.17.0
kakao.sdk.v2-common-2.17.0
play-services-ads-identifier-17.0.0 | Kakao 로그인을 지원 | API 23(Marshmallow, OS 6.0) |
| | gamebase-adapter-auth-steam | - | Steam 로그인을 지원 | API 25(Nougat, OS 7.1.1) |
| Gamebase IAP Adapters | gamebase-adapter-toastiap | nhncloud-iap-core | 게임 내 결제 지원 | - |
@@ -43,7 +42,6 @@ Android에서 Gamebase를 사용하기 위한 시스템 환경은 다음과 같
| | gamebase-adapter-push-adm | nhncloud-push-adm | Amazon Device Messaging을 지원 | - |
| | gamebase-adapter-push-fcm | firebase-messaging-17.6.0
nhncloud-push-fcm | Firebase Cloud Messaging을 지원 | - |
-
## Setting
### Console
@@ -178,10 +176,6 @@ dependencies {
implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangamejp:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-hangamejpemail:$GAMEBASE_SDK_VERSION"
implementation "com.toast.android.gamebase:gamebase-adapter-auth-kakaogame:$GAMEBASE_SDK_VERSION"
- // >>> [Weibo v4]
- // https://github.com/nhn/toast.gamebase.android.sample/tree/main/weibo_sdk
- implementation files('libs/openDefault-4.4.4.aar')
- implementation "com.toast.android.gamebase:gamebase-adapter-auth-weibo-v4:$GAMEBASE_SDK_VERSION"
// >>> [ONE store v16]
implementation "com.toast.android.gamebase:gamebase-adapter-purchase-onestore-v16:$GAMEBASE_SDK_VERSION"
// >>> [ONE store v17]
@@ -201,29 +195,11 @@ android {
// >>> [Purchase Support under Android 7.0(API Level 24)]
coreLibraryDesugaringEnabled true
}
-
- defaultConfig {
- // >>> [Weibo IdP]
- ndk {
- abiFilters 'armeabi' // , 'armeabi-v7a', 'arm64-v8a'
- }
- }
}
```
### Resources
-#### Weibo IdP
-
-* 빌드 타깃에 따라 다음 URL의 so 파일들을 다운로드하여 프로젝트로 복사하세요.
- * https://github.com/sinaweibosdk/weibo_android_sdk/tree/master/so
-* Android Studio 빌드인 경우
- * 프로젝트의 src/main/java/jniLibs 폴더 하위로 복사합니다.
- * 
-* Unity 빌드인 경우
- * so 파일 및 폴더를 Assets/Plugins/Android/libs 폴더 하위로 복사합니다.
- * 
-
#### Huawei Store
* AppGallery Connection 구성 파일(agconnect-services.json)을 assets 폴더에 추가해야 합니다.
diff --git a/ko/aos-ui.md b/ko/aos-ui.md
index 035769f5..7abee149 100644
--- a/ko/aos-ui.md
+++ b/ko/aos-ui.md
@@ -595,9 +595,9 @@ showWebView(activity, urlString, configuration,
| | ScreenOrientation.LANDSCAPE | 가로 모드 |
| | ScreenOrientation.LANDSCAPE_REVERSE | 가로 모드를 180도 회전 |
| setNavigationBarVisible(boolean enable) | true or false | 내비게이션 바 활성 또는 비활성.
**default**: true |
-| setNavigationBarColor(int color) | Color.argb(a, r, b, b) | 내비게이션 바 색상
**default**:#125DE6 |
-| setNavigationBarTitleColor(int color) | Color.argb(a, r, b, b) | 내비게이션 바 타이틀 색상
**default**: Color.WHITE |
-| setNavigationBarIconTintColor(int color) | Color.argb(a, r, b, b) | 내비게이션 바 아이콘 틴트 색상
**default**: 틴트 설정하지 않음 |
+| setNavigationBarColor(int color) | Color.argb(a, r, g, b) | 내비게이션 바 색상
**default**:#125DE6 |
+| setNavigationBarTitleColor(int color) | Color.argb(a, r, g, b) | 내비게이션 바 타이틀 색상
**default**: Color.WHITE |
+| setNavigationBarIconTintColor(int color) | Color.argb(a, r, g, b) | 내비게이션 바 아이콘 틴트 색상
**default**: 틴트 설정하지 않음 |
| setNavigationBarHeight(int height) | height | 내비게이션 바 높이 |
| setBackButtonVisible(boolean visible) | true or false | 뒤로 가기 버튼 활성 또는 비활성.
**default**: true |
| setBackButtonImageResource(int resourceId) | ID of resource | 뒤로 가기 버튼 이미지 |
@@ -605,7 +605,7 @@ showWebView(activity, urlString, configuration,
| enableAutoCloseByCustomScheme(boolean enable) | true or false | 커스텀 스킴 동작 시 자동으로 웹뷰 종료.
**default**: true |
| enableFixedFontSize(boolean enable) | true or false | 시스템 글자 크기를 무시하고 고정된 크기로 웹뷰를 표시.
**default**: false |
| setRenderOutsideSafeArea(boolean render) | true or false | SafeArea를 무시하고 Cutout 영역에도 렌더링.
**default**: false |
-| setCutoutAreaColor(int color) | Color.argb(a, r, b, b) | SafeArea 밖의 Cutout 영역 바탕 색상 |
+| setCutoutAreaColor(int color) | Color.argb(a, r, g, b) | SafeArea 밖의 Cutout 영역 바탕 색상 |
### Close WebView
다음 API를 통해 현재 보여지는 웹뷰를 닫을 수 있습니다.
diff --git a/ko/error-code.md b/ko/error-code.md
index fcf7d718..1c0e6eac 100644
--- a/ko/error-code.md
+++ b/ko/error-code.md
@@ -4,16 +4,16 @@
| Category | Platform | Error | Error Code | Description |
| --------------- | ------------------ | ---------------------------------------- | ---------- | ---------------------------------------- |
-| Common | Android
Unity
iOS | NOT_INITIALIZED
TCGB\_ERROR\_NOT\_INITIALIZED | 1 | Gamebase가 초기화되어 있지 않습니다. |
-| | Android
Unity
iOS | NOT\_LOGGED\_IN
TCGB\_ERROR\_NOT\_LOGGED\_IN | 2 | 로그인이 필요합니다. |
-| | Android
Unity
iOS | INVALID_PARAMETER
TCGB\_ERROR\_INVALID\_PARAMETER | 3 | 잘못된 파라미터입니다. |
-| | Android
Unity
iOS | INVALID\_JSON\_FORMAT
TCGB\_ERROR\_INVALID\_JSON\_FORMAT | 4 | JSON 형식 오류입니다. |
-| | Android
Unity
iOS | USER_PERMISSION
TCGB\_ERROR\_USER\_PERMISSION | 5 | 권한이 없습니다. |
-| | Android
Unity
iOS | INVALID\_MEMBER
TCGB\_ERROR\_INVALID\_MEMBER | 6 | 잘못된 회원에 대한 요청입니다. |
-| | Android
Unity
iOS | BANNED\_MEMBER
TCGB\_ERROR\_BANNED\_MEMBER | 7 | 제재된 회원입니다. |
-| | Android
Unity
iOS | NOT_SUPPORTED
TCGB\_ERROR\_NOT\_SUPPORTED | 10 | 지원하지 않는 기능입니다. |
-| | Unity
iOS | NOT\_SUPPORTED\_ANDROID
TCGB\_ERROR\_NOT\_SUPPORTED\_ANDROID | 11 | Android에서 지원하지 않는 기능입니다. |
-| | Unity
iOS | NOT\_SUPPORTED\_IOS
TCGB\_ERROR\_NOT\_SUPPORTED\_IOS | 12 | iOS에서 지원하지 않는 기능입니다. |
+| Common | Android
Unity
Unreal
iOS | NOT_INITIALIZED
TCGB\_ERROR\_NOT\_INITIALIZED | 1 | Gamebase가 초기화되어 있지 않습니다. |
+| | Android
Unity
Unreal
iOS | NOT\_LOGGED\_IN
TCGB\_ERROR\_NOT\_LOGGED\_IN | 2 | 로그인이 필요합니다. |
+| | Android
Unity
Unreal
iOS | INVALID_PARAMETER
TCGB\_ERROR\_INVALID\_PARAMETER | 3 | 잘못된 파라미터입니다. |
+| | Android
Unity
Unreal
iOS | INVALID\_JSON\_FORMAT
TCGB\_ERROR\_INVALID\_JSON\_FORMAT | 4 | JSON 형식 오류입니다. |
+| | Android
Unity
Unreal
iOS | USER_PERMISSION
TCGB\_ERROR\_USER\_PERMISSION | 5 | 권한이 없습니다. |
+| | Android
Unity
Unreal
iOS | INVALID\_MEMBER
TCGB\_ERROR\_INVALID\_MEMBER | 6 | 잘못된 회원에 대한 요청입니다. |
+| | Android
Unity
Unreal
iOS | BANNED\_MEMBER
TCGB\_ERROR\_BANNED\_MEMBER | 7 | 제재된 회원입니다. |
+| | Android
Unity
Unreal
iOS | NOT_SUPPORTED
TCGB\_ERROR\_NOT\_SUPPORTED | 10 | 지원하지 않는 기능입니다. |
+| | Unity
Unreal
iOS | NOT\_SUPPORTED\_ANDROID
TCGB\_ERROR\_NOT\_SUPPORTED\_ANDROID | 11 | Android에서 지원하지 않는 기능입니다. |
+| | Unity
Unreal
iOS | NOT\_SUPPORTED\_IOS
TCGB\_ERROR\_NOT\_SUPPORTED\_IOS | 12 | iOS에서 지원하지 않는 기능입니다. |
| | Unity | NOT\_SUPPORTED\_UNITY\_EDITOR | 13 | Editor에서 지원하지 않는 기능입니다. |
| | Unity | NOT\_SUPPORTED\_UNITY\_STANDALONE | 14 | Standalone에서 지원하지 않는 기능입니다. |
| | Unity | NOT\_SUPPORTED\_UNITY\_WEBGL | 15 | WebGL에서 지원하지 않는 기능입니다. |
@@ -21,90 +21,90 @@
| | Android | ANDROID\_ACTIVEAPP\_NOT\_CALLED | 32 | activeApp API가 호출되지 않았습니다. |
| | iOS | TCGB_ERROR_IOS_GAMECENTER_DENIED | 51 | Gamecenter 로그인이 거부되었습니다. |
| | iOS | TCGB_ERROR_IOS_CANNOT_OPEN_URL | 52 | 앱에서 URL 스킴을 처리할 수 없습니다. |
-| Network(Socket) | Android
Unity
iOS | SOCKET\_RESPONSE\_TIMEOUT
TCGB\_ERROR\_SOCKET\_RESPONSE\_TIMEOUT | 101 | 네트워크 상태가 불안정하여 응답이 없습니다. |
-| | Android
Unity
iOS | SOCKET_ERROR
TCGB\_ERROR\_SOCKET\_ERROR | 110 | 소켓 오류입니다. |
-| | Android
Unity
iOS | SOCKET\_UNKNOWN_ERROR
TCGB\_ERROR\_SOCKET\_UNKNOWN\_ERROR | 999 | 알 수 없는 소켓 오류입니다. |
-| Launching | Android
Unity
iOS | LAUNCHING\_SERVER\_ERROR
TCGB\_ERROR\_LAUNCHING\_SERVER\_ERROR | 2001 | 론칭 서버 오류입니다. |
-| | Android
Unity
iOS | LAUNCHING\_NOT\_EXIST\_CLIENT\_ID
TCGB\_ERROR\_LAUNCHING\_NOT\_EXIST\_CLIENT\_ID | 2002 | 클라이언트 ID가 없습니다. |
-| | Android
Unity
iOS | LAUNCHING\_UNREGISTERED\_APP
TCGB\_ERROR\_LAUNCHING\_UNREGISTERED\_APP | 2003 | 등록되지 않은 앱입니다. |
-| | Android
Unity
iOS | LAUNCHING\_UNREGISTERED\_CLIENT
TCGB\_ERROR\_LAUNCHING\_UNREGISTERED\_CLIENT | 2004 | 등록되지 않은 클라이언트(버전)입니다. |
-| Auth | Android
Unity
iOS | AUTH\_USER\_CANCELED
TCGB\_ERROR\_AUTH\_USER\_CANCELED | 3001 | 로그인이 취소되었습니다. |
-| | Android
Unity
iOS | AUTH\_NOT\_SUPPORTED\_PROVIDER
TCGB\_ERROR\_AUTH\_NOT\_SUPPORTED\_PROVIDER | 3002 | 지원하지 않는 인증 방식입니다. |
-| | Android
Unity
iOS | AUTH\_NOT\_EXIST\_MEMBER
TCGB\_ERROR\_AUTH\_NOT\_EXIST\_MEMBER | 3003 | 존재하지 않거나 탈퇴한 회원입니다. |
-| | Android
Unity
iOS | AUTH\_EXTERNAL\_LIBRARY\_INITIALIZATION\_ERROR
TCGB\_ERROR\_AUTH\_EXTERNAL\_LIBRARY\_INITIALIZATION\_ERROR | 3006 | 외부 인증 라이브러리 초기화에 실패하였습니다. |
-| | Android
Unity
iOS | AUTH\_EXTERNAL\_LIBRARY\_ERROR
TCGB\_ERROR\_AUTH\_EXTERNAL\_LIBRARY\_ERROR | 3009 | 외부 인증 라이브러리 오류입니다. |
-| | Android
Unity
iOS | AUTH\_ALREADY\_IN\_PROGRESS\_ERROR
TCGB\_ERROR\_AUTH\_ALREADY\_IN\_PROGRESS\_ERROR | 3010 | 이전 인증 프로세스가 완료되지 않았습니다. |
-| | Android
Unity
iOS | AUTH\_INVALID\_GAMEBASE\_TOKEN
TCGB\_ERROR\_AUTH\_INVALID\_GAMEBASE\_TOKEN | 3011 | Gamebase Access Token이 유효하지 않아 로그아웃되었습니다.
로그인을 다시 시도하세요. |
-| | Android
Unity
iOS | AUTH\_AUTHENTICATION\_SERVER\_ERROR
TCGB\_ERROR\_AUTH\_AUTHENTICATION\_SERVER\_ERROR | 3012 | 인증 서버로부터 오류가 발생했습니다. |
-| TransferAccount | Android
Unity
iOS | SAME\_REQUESTOR
TCGB\_ERROR\_SAME\_REQUESTOR | 8 | 발급한 TransferAccount를 동일한 단말기에서 사용했습니다. |
-| | Android
Unity
iOS | NOT\_GUEST\_OR\_HAS\_OTHERS
TCGB\_ERROR\_NOT\_GUEST\_OR\_HAS\_OTHERS | 9 | 게스트가 아닌 계정에서 이전을 시도했거나, 계정에 게스트 이외의 IdP가 연동되어 있습니다. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_EXPIRED
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_EXPIRED | 3041 | TransferAccount의 유효기간이 만료됐습니다. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_BLOCK
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_BLOCK | 3042 | 잘못된 TransferAccount를 여러 번 입력하여 계정 이전 기능이 잠겼습니다. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_INVALID\_ID
iCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_INVALID\_ID | 3043 | TransferAccount의 Id가 유효하지 않습니다. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_INVALID\_PASSWORD
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_INVALID\_PASSWORD | 3044 | TransferAccount의 Password가 유효하지 않습니다. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_CONSOLE\_NO\_CONDITION
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_CONSOLE\_NO\_CONDITION | 3045 | TransferAccount가 설정되어 있지 않습니다.
NHN Cloud Gamebase 콘솔에서 TransferAccount를 먼저 설정하세요. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_NOT\_EXIST
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_NOT\_EXIST | 3046 | TransferAccount가 존재하지 않습니다. TransferAccount를 먼저 발급 받으세요. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_ALREADY\_EXIST\_ID
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_ALREADY\_EXIST\_ID | 3047 | TransferAccount가 이미 존재합니다. |
-| | Android
Unity
iOS | AUTH\_TRANSFERACCOUNT\_ALREADY\_USED
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_ALREADY\_USED | 3048 | TransferAccount가 이미 사용되었습니다. |
-| Auth (Login) | Android
Unity
iOS | AUTH\_TOKEN\_LOGIN\_FAILED
TCGB\_ERROR\_AUTH\_TOKEN\_LOGIN\_FAILED | 3101 | 토큰 로그인에 실패했습니다. |
-| | Android
Unity
iOS | AUTH\_TOKEN\_LOGIN\_INVALID\_TOKEN\_INFO
TCGB\_ERROR\_AUTH\_TOKEN\_LOGIN\_INVALID\_TOKEN\_INFO | 3102 | 토큰 정보가 유효하지 않습니다. |
-| | Android
Unity
iOS | AUTH\_TOKEN\_LOGIN\_INVALID\_LAST\_LOGGED\_IN\_IDP
TCGB\_ERROR\_AUTH\_TOKEN\_LOGIN\_INVALID\_LAST\_LOGGED\_IN\_IDP | 3103 | 최근에 로그인한 IdP 정보가 없습니다. |
-| IDP Login | Android
Unity
iOS | AUTH\_IDP\_LOGIN\_FAILED
TCGB\_ERROR\_AUTH\_IDP\_LOGIN\_FAILED | 3201 | IdP 로그인에 실패했습니다. |
-| | Android
Unity
iOS | AUTH\_IDP\_LOGIN\_INVALID\_IDP\_INFO
TCGB\_ERROR\_AUTH\_IDP\_LOGIN\_INVALID\_IDP\_INFO | 3202 | IdP 정보가 유효하지 않습니다(콘솔에 해당 IdP 정보가 없습니다). |
-| | Unity
iOS | AUTH\_IDP\_LOGIN\_EXTERNAL\_AUTHENTICATION\_REQUIRED
TCGB\_ERROR\_AUTH\_IDP\_LOGIN\_EXTERNAL\_AUTHENTICATION\_REQUIRED | 3203 | Gamebase 로그인 요청 전에 먼저 IdP 로그인이 되어 있어야 합니다. |
-| Add Mapping | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_FAILED
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FAILED | 3301 | 매핑 추가에 실패했습니다. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_ALREADY\_MAPPED\_TO\_OTHER\_MEMBER
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_ALREADY\_MAPPED\_TO\_OTHER\_MEMBER | 3302 | 이미 다른 멤버에 매핑되어 있습니다. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_ALREADY\_HAS\_SAME\_IDP
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_ALREADY\_HAS\_SAME\_IDP | 3303 | 이미 같은 IdP에 매핑되어 있습니다. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_INVALID\_IDP\_INFO
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_INVALID\_IDP\_INFO | 3304 | IdP 정보가 유효하지 않습니다(콘솔에 해당 IdP 정보가 없습니다). |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_CANNOT\_ADD\_GUEST\_IDP
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_CANNOT\_ADD\_GUEST\_IDP | 3305 | 게스트 IdP로는 AddMapping이 불가능합니다. |
-| Add Mapping Forcibly | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_NOT\_EXIST\_KEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_NOT\_EXIST\_KEY | 3311 | 강제 매핑 키(ForcingMappingKey)가 존재하지 않습니다.
ForcingMappingTicket을 다시 한번 확인하세요. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_ALREADY\_USED\_KEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_ALREADY\_USED\_KEY | 3312 | 강제 매핑 키(ForcingMappingKey)가 이미 사용되었습니다. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_EXPIRED\_KEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_EXPIRED\_KEY | 3313 | 강제 매핑 키(ForcingMappingKey)의 유효기간이 만료되었습니다. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_IDP
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_IDP | 3314 | 강제 매핑 키(ForcingMappingKey)가 다른 IdP에 사용되었습니다.
발급 받은 ForcingMappingKey는 같은 IdP에 강제 매핑을 시도하는 데 사용됩니다. |
-| | Android
Unity
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_AUTHKEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_AUTHKEY | 3315 | 강제 매핑 키(ForcingMappingKey)가 다른 계정에 사용되었습니다.
발급 받은 ForcingMappingKey는 같은 IdP 및 계정에 강제 매핑을 시도하는 데 사용됩니다. |
-| Remove Mapping | Android
Unity
iOS | AUTH\_REMOVE\_MAPPING\_FAILED
TCGB\_ERROR\_AUTH\_REMOVE\_MAPPING\_FAILED | 3401 | 매핑 삭제에 실패했습니다. |
-| | Android
Unity
iOS | AUTH\_REMOVE\_MAPPING\_LAST\_MAPPED\_IDP
TCGB\_ERROR\_AUTH\_REMOVE\_MAPPING\_LAST\_MAPPED\_IDP | 3402 | 마지막에 매핑된 IdP는 삭제할 수 없습니다. |
-| | Android
Unity
iOS | AUTH\_REMOVE\_MAPPING\_LOGGED\_IN\_IDP
TCGB\_ERROR\_AUTH\_REMOVE\_MAPPING\_LOGGED\_IN\_IDP | 3403 | 현재 로그인되어 있는 IdP입니다. |
-| Logout | Android
Unity
iOS | AUTH\_LOGOUT\_FAILED
TCGB\_ERROR\_AUTH\_LOGOUT\_FAILED | 3501 | 로그아웃에 실패했습니다. |
-| Withdrawal | Android
Unity
iOS | AUTH\_WITHDRAW\_FAILED
TCGB\_ERROR\_AUTH\_WITHDRAW\_FAILED | 3601 | 탈퇴에 실패했습니다. |
-| | Android
Unity
iOS | AUTH\_WITHDRAW\_ALREADY\_TEMPORARY\_WITHDRAW
TCGB\_ERROR\_AUTH\_WITHDRAW\_ALREADY\_TEMPORARY\_WITHDRAW | 3602 | 이미 임시 탈퇴를 요청한 유저입니다. |
-| | Android
Unity
iOS | AUTH\_WITHDRAW\_NOT\_TEMPORARY\_WITHDRAW
TCGB\_ERROR\_AUTH\_WITHDRAW\_NOT\_TEMPORARY\_WITHDRAW | 3603 | 임시 탈퇴를 요청한 유저가 아닙니다. |
-| Not Playable | Android
Unity
iOS | AUTH\_NOT\_PLAYABLE
TCGB\_ERROR\_AUTH\_NOT\_PLAYABLE | 3701 | 플레이할 수 없는 상태입니다(점검 또는 서비스 종료 등). |
-| Auth(Unknown) | Android
Unity
iOS | AUTH\_UNKNOWN\_ERROR
TCGB\_ERROR\_AUTH\_UNKNOWN\_ERROR | 3999 | 알 수 없는 오류입니다(정의되지 않은 오류). |
-| Purchase | Android
Unity
iOS | PURCHASE\_NOT\_INITIALIZED
TCGB\_ERROR\_PURCHASE\_NOT\_INITIALIZED | 4001 | Gamebase PurchaseAdapter가 초기화되지 않았습니다. |
-| | Android
Unity
iOS | PURCHASE\_USER\_CANCELED
TCGB\_ERROR\_PURCHASE\_USER\_CANCELED | 4002 | 구매가 취소되었습니다. |
-| | Android
Unity
iOS | PURCHASE\_NOT\_FINISHED\_PREVIOUS\_PURCHASING
TCGB\_ERROR\_PURCHASE\_NOT\_FINISHED\_PREVIOUS\_PURCHASING | 4003 | 이전 구매가 완료되지 않았습니다. |
-| | Unity | PURCHASE\_NOT\_ENOUGH\_CASH | 4004 | 해당 스토어의 캐시가 부족하여 결제할 수 없습니다.(Unity에 한함) |
-| | Android
Unity
iOS | PURCHASE\_INACTIVE\_PRODUCT\_ID
TCGB\_ERROR\_PURCHASE\_INACTIVE\_PRODUCT\_ID | 4005 | 해당 상품이 활성화 상태가 아닙니다. |
-| | Android
Unity
iOS | PURCHASE\_NOT\_EXIST\_PRODUCT\_ID
TCGB\_ERROR\_PURCHASE\_NOT\_EXIST\_PRODUCT\_ID | 4006 | 존재하지 않는 GamebaseProductID로 결제를 요청하였습니다. |
-| | Android
Unity
iOS | PURCHASE\_LIMIT\_EXCEEDED
TCGB\_ERROR\_PURCHASE\_LIMIT\_EXCEEDED | 4007 | 월 구매 한도를 초과했습니다. |
-| | Android
Unity
iOS | PURCHASE\_NOT\_SUPPORTED\_MARKET
TCGB\_ERROR\_PURCHASE\_NOT\_SUPPORTED\_MARKET | 4010 | 지원하지 않는 스토어입니다. |
-| | Android
Unity
iOS | PURCHASE\_EXTERNAL\_LIBRARY\_ERROR
TCGB\_ERROR\_PURCHASE\_EXTERNAL\_LIBRARY\_ERROR | 4201 | 외부 IAP 라이브러리 오류입니다. |
-| | Android
Unity
iOS | PURCHASE\_UNKNOWN\_ERROR
TCGB\_ERROR\_PURCHASE\_UNKNOWN\_ERROR | 4999 | 알 수 없는 구매 오류입니다. |
-| Push | Android
Unity
iOS | PUSH\_EXTERNAL\_LIBRARY\_ERROR
TCGB\_ERROR\_PUSH\_EXTERNAL\_LIBRARY\_ERROR | 5101 | 외부 라이브러리 오류입니다. |
-| | Android
Unity
iOS | PUSH\_ALREADY\_IN\_PROGRESS\_ERROR
TCGB\_ERROR\_PUSH\_ALREADY\_IN\_PROGRESS\_ERROR | 5102 | 이전 푸시 API 호출이 완료되지 않았습니다. |
-| | Android
Unity
iOS | PUSH\_UNKNOWN\_ERROR
TCGB\_ERROR\_PUSH\_UNKNOWN\_ERROR | 5999 | 알 수 없는 푸시 오류입니다(정의되지 않은 푸시 오류). |
-| UI | Android
Unity
iOS | UI\_IMAGE\_NOTICE\_TIMEOUT
TCGB\_ERROR\_UI\_IMAGE\_NOTICE\_TIMEOUT | 6901 | 이미지 공지 표시 중 시간이 초과되었습니다. |
+| Network(Socket) | Android
Unity
Unreal
iOS | SOCKET\_RESPONSE\_TIMEOUT
TCGB\_ERROR\_SOCKET\_RESPONSE\_TIMEOUT | 101 | 네트워크 상태가 불안정하여 응답이 없습니다. |
+| | Android
Unity
Unreal
iOS | SOCKET_ERROR
TCGB\_ERROR\_SOCKET\_ERROR | 110 | 소켓 오류입니다. |
+| | Android
Unity
Unreal
iOS | SOCKET\_UNKNOWN_ERROR
TCGB\_ERROR\_SOCKET\_UNKNOWN\_ERROR | 999 | 알 수 없는 소켓 오류입니다. |
+| Launching | Android
Unity
Unreal
iOS | LAUNCHING\_SERVER\_ERROR
TCGB\_ERROR\_LAUNCHING\_SERVER\_ERROR | 2001 | 론칭 서버 오류입니다. |
+| | Android
Unity
Unreal
iOS | LAUNCHING\_NOT\_EXIST\_CLIENT\_ID
TCGB\_ERROR\_LAUNCHING\_NOT\_EXIST\_CLIENT\_ID | 2002 | 클라이언트 ID가 없습니다. |
+| | Android
Unity
Unreal
iOS | LAUNCHING\_UNREGISTERED\_APP
TCGB\_ERROR\_LAUNCHING\_UNREGISTERED\_APP | 2003 | 등록되지 않은 앱입니다. |
+| | Android
Unity
Unreal
iOS | LAUNCHING\_UNREGISTERED\_CLIENT
TCGB\_ERROR\_LAUNCHING\_UNREGISTERED\_CLIENT | 2004 | 등록되지 않은 클라이언트(버전)입니다. |
+| Auth | Android
Unity
Unreal
iOS | AUTH\_USER\_CANCELED
TCGB\_ERROR\_AUTH\_USER\_CANCELED | 3001 | 로그인이 취소되었습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_NOT\_SUPPORTED\_PROVIDER
TCGB\_ERROR\_AUTH\_NOT\_SUPPORTED\_PROVIDER | 3002 | 지원하지 않는 인증 방식입니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_NOT\_EXIST\_MEMBER
TCGB\_ERROR\_AUTH\_NOT\_EXIST\_MEMBER | 3003 | 존재하지 않거나 탈퇴한 회원입니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_EXTERNAL\_LIBRARY\_INITIALIZATION\_ERROR
TCGB\_ERROR\_AUTH\_EXTERNAL\_LIBRARY\_INITIALIZATION\_ERROR | 3006 | 외부 인증 라이브러리 초기화에 실패하였습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_EXTERNAL\_LIBRARY\_ERROR
TCGB\_ERROR\_AUTH\_EXTERNAL\_LIBRARY\_ERROR | 3009 | 외부 인증 라이브러리 오류입니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ALREADY\_IN\_PROGRESS\_ERROR
TCGB\_ERROR\_AUTH\_ALREADY\_IN\_PROGRESS\_ERROR | 3010 | 이전 인증 프로세스가 완료되지 않았습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_INVALID\_GAMEBASE\_TOKEN
TCGB\_ERROR\_AUTH\_INVALID\_GAMEBASE\_TOKEN | 3011 | Gamebase Access Token이 유효하지 않아 로그아웃되었습니다.
로그인을 다시 시도하세요. |
+| | Android
Unity
Unreal
iOS | AUTH\_AUTHENTICATION\_SERVER\_ERROR
TCGB\_ERROR\_AUTH\_AUTHENTICATION\_SERVER\_ERROR | 3012 | 인증 서버로부터 오류가 발생했습니다. |
+| TransferAccount | Android
Unity
Unreal
iOS | SAME\_REQUESTOR
TCGB\_ERROR\_SAME\_REQUESTOR | 8 | 발급한 TransferAccount를 동일한 단말기에서 사용했습니다. |
+| | Android
Unity
Unreal
iOS | NOT\_GUEST\_OR\_HAS\_OTHERS
TCGB\_ERROR\_NOT\_GUEST\_OR\_HAS\_OTHERS | 9 | 게스트가 아닌 계정에서 이전을 시도했거나, 계정에 게스트 이외의 IdP가 연동되어 있습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_EXPIRED
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_EXPIRED | 3041 | TransferAccount의 유효기간이 만료됐습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_BLOCK
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_BLOCK | 3042 | 잘못된 TransferAccount를 여러 번 입력하여 계정 이전 기능이 잠겼습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_INVALID\_ID
iCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_INVALID\_ID | 3043 | TransferAccount의 Id가 유효하지 않습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_INVALID\_PASSWORD
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_INVALID\_PASSWORD | 3044 | TransferAccount의 Password가 유효하지 않습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_CONSOLE\_NO\_CONDITION
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_CONSOLE\_NO\_CONDITION | 3045 | TransferAccount가 설정되어 있지 않습니다.
NHN Cloud Gamebase 콘솔에서 TransferAccount를 먼저 설정하세요. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_NOT\_EXIST
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_NOT\_EXIST | 3046 | TransferAccount가 존재하지 않습니다. TransferAccount를 먼저 발급 받으세요. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_ALREADY\_EXIST\_ID
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_ALREADY\_EXIST\_ID | 3047 | TransferAccount가 이미 존재합니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TRANSFERACCOUNT\_ALREADY\_USED
TCGB\_ERROR\_AUTH\_TRANSFERACCOUNT\_ALREADY\_USED | 3048 | TransferAccount가 이미 사용되었습니다. |
+| Auth (Login) | Android
Unity
Unreal
iOS | AUTH\_TOKEN\_LOGIN\_FAILED
TCGB\_ERROR\_AUTH\_TOKEN\_LOGIN\_FAILED | 3101 | 토큰 로그인에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TOKEN\_LOGIN\_INVALID\_TOKEN\_INFO
TCGB\_ERROR\_AUTH\_TOKEN\_LOGIN\_INVALID\_TOKEN\_INFO | 3102 | 토큰 정보가 유효하지 않습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_TOKEN\_LOGIN\_INVALID\_LAST\_LOGGED\_IN\_IDP
TCGB\_ERROR\_AUTH\_TOKEN\_LOGIN\_INVALID\_LAST\_LOGGED\_IN\_IDP | 3103 | 최근에 로그인한 IdP 정보가 없습니다. |
+| IDP Login | Android
Unity
Unreal
iOS | AUTH\_IDP\_LOGIN\_FAILED
TCGB\_ERROR\_AUTH\_IDP\_LOGIN\_FAILED | 3201 | IdP 로그인에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_IDP\_LOGIN\_INVALID\_IDP\_INFO
TCGB\_ERROR\_AUTH\_IDP\_LOGIN\_INVALID\_IDP\_INFO | 3202 | IdP 정보가 유효하지 않습니다(콘솔에 해당 IdP 정보가 없습니다). |
+| | Unity
Unreal
iOS | AUTH\_IDP\_LOGIN\_EXTERNAL\_AUTHENTICATION\_REQUIRED
TCGB\_ERROR\_AUTH\_IDP\_LOGIN\_EXTERNAL\_AUTHENTICATION\_REQUIRED | 3203 | Gamebase 로그인 요청 전에 먼저 IdP 로그인이 되어 있어야 합니다. |
+| Add Mapping | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_FAILED
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FAILED | 3301 | 매핑 추가에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_ALREADY\_MAPPED\_TO\_OTHER\_MEMBER
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_ALREADY\_MAPPED\_TO\_OTHER\_MEMBER | 3302 | 이미 다른 멤버에 매핑되어 있습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_ALREADY\_HAS\_SAME\_IDP
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_ALREADY\_HAS\_SAME\_IDP | 3303 | 이미 같은 IdP에 매핑되어 있습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_INVALID\_IDP\_INFO
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_INVALID\_IDP\_INFO | 3304 | IdP 정보가 유효하지 않습니다(콘솔에 해당 IdP 정보가 없습니다). |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_CANNOT\_ADD\_GUEST\_IDP
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_CANNOT\_ADD\_GUEST\_IDP | 3305 | 게스트 IdP로는 AddMapping이 불가능합니다. |
+| Add Mapping Forcibly | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_NOT\_EXIST\_KEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_NOT\_EXIST\_KEY | 3311 | 강제 매핑 키(ForcingMappingKey)가 존재하지 않습니다.
ForcingMappingTicket을 다시 한번 확인하세요. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_ALREADY\_USED\_KEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_ALREADY\_USED\_KEY | 3312 | 강제 매핑 키(ForcingMappingKey)가 이미 사용되었습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_EXPIRED\_KEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_EXPIRED\_KEY | 3313 | 강제 매핑 키(ForcingMappingKey)의 유효기간이 만료되었습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_IDP
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_IDP | 3314 | 강제 매핑 키(ForcingMappingKey)가 다른 IdP에 사용되었습니다.
발급 받은 ForcingMappingKey는 같은 IdP에 강제 매핑을 시도하는 데 사용됩니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_AUTHKEY
TCGB\_ERROR\_AUTH\_ADD\_MAPPING\_FORCIBLY\_DIFFERENT\_AUTHKEY | 3315 | 강제 매핑 키(ForcingMappingKey)가 다른 계정에 사용되었습니다.
발급 받은 ForcingMappingKey는 같은 IdP 및 계정에 강제 매핑을 시도하는 데 사용됩니다. |
+| Remove Mapping | Android
Unity
Unreal
iOS | AUTH\_REMOVE\_MAPPING\_FAILED
TCGB\_ERROR\_AUTH\_REMOVE\_MAPPING\_FAILED | 3401 | 매핑 삭제에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_REMOVE\_MAPPING\_LAST\_MAPPED\_IDP
TCGB\_ERROR\_AUTH\_REMOVE\_MAPPING\_LAST\_MAPPED\_IDP | 3402 | 마지막에 매핑된 IdP는 삭제할 수 없습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_REMOVE\_MAPPING\_LOGGED\_IN\_IDP
TCGB\_ERROR\_AUTH\_REMOVE\_MAPPING\_LOGGED\_IN\_IDP | 3403 | 현재 로그인되어 있는 IdP입니다. |
+| Logout | Android
Unity
Unreal
iOS | AUTH\_LOGOUT\_FAILED
TCGB\_ERROR\_AUTH\_LOGOUT\_FAILED | 3501 | 로그아웃에 실패했습니다. |
+| Withdrawal | Android
Unity
Unreal
iOS | AUTH\_WITHDRAW\_FAILED
TCGB\_ERROR\_AUTH\_WITHDRAW\_FAILED | 3601 | 탈퇴에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_WITHDRAW\_ALREADY\_TEMPORARY\_WITHDRAW
TCGB\_ERROR\_AUTH\_WITHDRAW\_ALREADY\_TEMPORARY\_WITHDRAW | 3602 | 이미 임시 탈퇴를 요청한 유저입니다. |
+| | Android
Unity
Unreal
iOS | AUTH\_WITHDRAW\_NOT\_TEMPORARY\_WITHDRAW
TCGB\_ERROR\_AUTH\_WITHDRAW\_NOT\_TEMPORARY\_WITHDRAW | 3603 | 임시 탈퇴를 요청한 유저가 아닙니다. |
+| Not Playable | Android
Unity
Unreal
iOS | AUTH\_NOT\_PLAYABLE
TCGB\_ERROR\_AUTH\_NOT\_PLAYABLE | 3701 | 플레이할 수 없는 상태입니다(점검 또는 서비스 종료 등). |
+| Auth(Unknown) | Android
Unity
Unreal
iOS | AUTH\_UNKNOWN\_ERROR
TCGB\_ERROR\_AUTH\_UNKNOWN\_ERROR | 3999 | 알 수 없는 오류입니다(정의되지 않은 오류). |
+| Purchase | Android
Unity
Unreal
iOS | PURCHASE\_NOT\_INITIALIZED
TCGB\_ERROR\_PURCHASE\_NOT\_INITIALIZED | 4001 | Gamebase PurchaseAdapter가 초기화되지 않았습니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_USER\_CANCELED
TCGB\_ERROR\_PURCHASE\_USER\_CANCELED | 4002 | 구매가 취소되었습니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_NOT\_FINISHED\_PREVIOUS\_PURCHASING
TCGB\_ERROR\_PURCHASE\_NOT\_FINISHED\_PREVIOUS\_PURCHASING | 4003 | 이전 구매가 완료되지 않았습니다. |
+| | Unity
Unreal | PURCHASE\_NOT\_ENOUGH\_CASH | 4004 | 해당 스토어의 캐시가 부족하여 결제할 수 없습니다.(Unity에 한함) |
+| | Android
Unity
Unreal
iOS | PURCHASE\_INACTIVE\_PRODUCT\_ID
TCGB\_ERROR\_PURCHASE\_INACTIVE\_PRODUCT\_ID | 4005 | 해당 상품이 활성화 상태가 아닙니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_NOT\_EXIST\_PRODUCT\_ID
TCGB\_ERROR\_PURCHASE\_NOT\_EXIST\_PRODUCT\_ID | 4006 | 존재하지 않는 GamebaseProductID로 결제를 요청하였습니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_LIMIT\_EXCEEDED
TCGB\_ERROR\_PURCHASE\_LIMIT\_EXCEEDED | 4007 | 월 구매 한도를 초과했습니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_NOT\_SUPPORTED\_MARKET
TCGB\_ERROR\_PURCHASE\_NOT\_SUPPORTED\_MARKET | 4010 | 지원하지 않는 스토어입니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_EXTERNAL\_LIBRARY\_ERROR
TCGB\_ERROR\_PURCHASE\_EXTERNAL\_LIBRARY\_ERROR | 4201 | 외부 IAP 라이브러리 오류입니다. |
+| | Android
Unity
Unreal
iOS | PURCHASE\_UNKNOWN\_ERROR
TCGB\_ERROR\_PURCHASE\_UNKNOWN\_ERROR | 4999 | 알 수 없는 구매 오류입니다. |
+| Push | Android
Unity
Unreal
iOS | PUSH\_EXTERNAL\_LIBRARY\_ERROR
TCGB\_ERROR\_PUSH\_EXTERNAL\_LIBRARY\_ERROR | 5101 | 외부 라이브러리 오류입니다. |
+| | Android
Unity
Unreal
iOS | PUSH\_ALREADY\_IN\_PROGRESS\_ERROR
TCGB\_ERROR\_PUSH\_ALREADY\_IN\_PROGRESS\_ERROR | 5102 | 이전 푸시 API 호출이 완료되지 않았습니다. |
+| | Android
Unity
Unreal
iOS | PUSH\_UNKNOWN\_ERROR
TCGB\_ERROR\_PUSH\_UNKNOWN\_ERROR | 5999 | 알 수 없는 푸시 오류입니다(정의되지 않은 푸시 오류). |
+| UI | Android
Unity
Unreal
iOS | UI\_IMAGE\_NOTICE\_TIMEOUT
TCGB\_ERROR\_UI\_IMAGE\_NOTICE\_TIMEOUT | 6901 | 이미지 공지 표시 중 시간이 초과되었습니다. |
| | Android
Unity | UI\_IMAGE\_NOTICE\_NOT\_SUPPORTED\_OS | 6902 | 롤링 타입의 경우 API 19 이하의 단말기에서는 이미지 공지를 지원하지 않습니다. |
-| | Android
Unity
iOS | UI\_CONTACT\_FAIL\_INVALID\_URL
TCGB\_ERROR\_UI\_CONTACT\_FAIL\_INVALID\_URL | 6911 | 고객 센터 웹뷰 URL 생성에 실패했습니다. |
-| | Android
Unity
iOS | UI\_CONTACT\_FAIL\_FAIL\_ISSUE\_SHORT\_TERM\_TICKET
TCGB\_ERROR\_UI\_CONTACT\_FAIL\_ISSUE\_SHORT\_TERM\_TICKET | 6912 | 사용자 식별을 위한 임시 티켓 발급에 실패했습니다. |
-| | Android
Unity
iOS | UI\_TERMS\_NOT\_EXIST\_IN\_CONSOLE
TCGB\_ERROR\_UI\_TERMS\_NOT\_EXIST\_IN\_CONSOLE | 6921 | 약관 정보가 콘솔에 등록되어 있지 않습니다. |
-| | Android
Unity
iOS | UI\_TERMS\_NOT\_EXIST\_FOR\_DEVICE\_COUNTRY
TCGB\_ERROR\_UI\_TERMS\_NOT\_EXIST\_FOR\_DEVICE\_COUNTRY | 6922 | 단말기 국가코드에 맞는 약관 정보가 콘솔에 등록되어 있지 않습니다. |
-| | Android
Unity
iOS | UI\_TERMS\_UNREGISTERED\_SEQ
TCGB\_ERROR\_UI\_TERMS\_UNREGISTERED\_SEQ | 6923 | 등록되지 않은 약관 Seq 값입니다. |
-| | Android
Unity
iOS | UI\_TERMS\_ALREADY\_IN\_PROGRESS\_ERROR
TCGB\_ERROR\_UI\_TERMS\_ALREADY\_IN\_PROGRESS\_ERROR | 6924 | Terms API 호출이 아직 완료되지 않았습니다.
잠시 후 다시 시도하세요. |
+| | Android
Unity
Unreal
iOS | UI\_CONTACT\_FAIL\_INVALID\_URL
TCGB\_ERROR\_UI\_CONTACT\_FAIL\_INVALID\_URL | 6911 | 고객 센터 웹뷰 URL 생성에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | UI\_CONTACT\_FAIL\_FAIL\_ISSUE\_SHORT\_TERM\_TICKET
TCGB\_ERROR\_UI\_CONTACT\_FAIL\_ISSUE\_SHORT\_TERM\_TICKET | 6912 | 사용자 식별을 위한 임시 티켓 발급에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | UI\_TERMS\_NOT\_EXIST\_IN\_CONSOLE
TCGB\_ERROR\_UI\_TERMS\_NOT\_EXIST\_IN\_CONSOLE | 6921 | 약관 정보가 콘솔에 등록되어 있지 않습니다. |
+| | Android
Unity
Unreal
iOS | UI\_TERMS\_NOT\_EXIST\_FOR\_DEVICE\_COUNTRY
TCGB\_ERROR\_UI\_TERMS\_NOT\_EXIST\_FOR\_DEVICE\_COUNTRY | 6922 | 단말기 국가코드에 맞는 약관 정보가 콘솔에 등록되어 있지 않습니다. |
+| | Android
Unity
Unreal
iOS | UI\_TERMS\_UNREGISTERED\_SEQ
TCGB\_ERROR\_UI\_TERMS\_UNREGISTERED\_SEQ | 6923 | 등록되지 않은 약관 Seq 값입니다. |
+| | Android
Unity
Unreal
iOS | UI\_TERMS\_ALREADY\_IN\_PROGRESS\_ERROR
TCGB\_ERROR\_UI\_TERMS\_ALREADY\_IN\_PROGRESS\_ERROR | 6924 | Terms API 호출이 아직 완료되지 않았습니다.
잠시 후 다시 시도하세요. |
| | Android
Unity | UI\_TERMS\_ANDROID\_DUPLICATED\_VIEW | 6925 | 약관 웹뷰가 종료되지 않은 상태에서 다시 호출되었습니다. |
-| | Android
Unity
iOS | UI\_GAME\_NOTICE\_FAIL\_INVALID\_URL
TCGB\_ERROR\_UI\_GAME\_NOTICE\_FAIL\_INVALID\_URL | 6941 | 게임 공지 URL에 생성에 실패했습니다. |
+| | Android
Unity
Unreal
iOS | UI\_GAME\_NOTICE\_FAIL\_INVALID\_URL
TCGB\_ERROR\_UI\_GAME\_NOTICE\_FAIL\_INVALID\_URL | 6941 | 게임 공지 URL에 생성에 실패했습니다. |
| | Android
Unity | UI\_GAME\_NOTICE\_FAIL\_ANDROID\_DUPLICATED\_VIEW | 6942 | 게임 공지 팝업을 종료하기 전에 다시 게임 공지를 호출했습니다. |
-| | Android
Unity
iOS | UI\_UNKNOWN\_ERROR
TCGB\_ERROR\_UI\_UNKNOWN\_ERROR | 6999 | 알 수 없는 오류입니다(정의되지 않은 오류). |
-| WebView | Android
Unity
iOS | WEBVIEW\_INVALID\_URL
TCGB\_ERROR\_WEBVIEW\_INVALID\_URL | 7001 | 잘못된 URL입니다. |
-| | Android
Unity
iOS | WEBVIEW\_TIMEOUT
TCGB\_ERROR\_WEBVIEW\_TIMEOUT | 7002 | 웹뷰 표시 중 시간이 초과되었습니다. |
-| | Android
Unity
iOS | WEBVIEW\_HTTP\_ERROR
TCGB\_ERROR\_WEBVIEW\_HTTP\_ERROR | 7003 | HTTP 오류로 웹뷰 표시를 실패하였습니다. |
+| | Android
Unity
Unreal
iOS | UI\_UNKNOWN\_ERROR
TCGB\_ERROR\_UI\_UNKNOWN\_ERROR | 6999 | 알 수 없는 오류입니다(정의되지 않은 오류). |
+| WebView | Android
Unity
Unreal
iOS | WEBVIEW\_INVALID\_URL
TCGB\_ERROR\_WEBVIEW\_INVALID\_URL | 7001 | 잘못된 URL입니다. |
+| | Android
Unity
Unreal
iOS | WEBVIEW\_TIMEOUT
TCGB\_ERROR\_WEBVIEW\_TIMEOUT | 7002 | 웹뷰 표시 중 시간이 초과되었습니다. |
+| | Android
Unity
Unreal
iOS | WEBVIEW\_HTTP\_ERROR
TCGB\_ERROR\_WEBVIEW\_HTTP\_ERROR | 7003 | HTTP 오류로 웹뷰 표시를 실패하였습니다. |
| | Android
Unity | WEBVIEW\_OPENED\_NEW\_BROWSER\_BEFORE\_CLOSE | 7004 | Browser 형태의 웹뷰를 종료하기 전에 새로운 웹뷰를 표시하였습니다. |
-| | Unity | WEBVIEW\_UNKNOWN\_ERROR | 7999 | 웹뷰 호출 시 알 수 없는 오류가 발생했습니다.(정의되지 않은 오류). |
-| Server | Android
Unity
iOS | SERVER\_INTERNAL\_ERROR
TCGB\_ERROR\_SERVER\_INTERNAL\_ERROR | 8001 | 서버 내부 오류 |
-| | Android
Unity
iOS | SERVER\_REMOTE\_SYSTEM\_ERROR
TCGB\_ERROR\_SERVER\_REMOTE\_SYSTEM\_ERROR | 8002 | 서버에서 외부 연동 중 오류가 발생했습니다. |
-| | Android
Unity
iOS | SERVER\_INVALID\_RESPONSE
TCGB\_ERROR\_SERVER\_INVALID\_RESPONSE | 8003 | 서버가 유효하지 않은 응답을 반환했습니다. |
-| | Android
Unity
iOS | SERVER\_UNKNOWN\_ERROR
TCGB\_ERROR\_SERVER\_UNKNOWN\_ERROR | 8999 | 서버에서 알 수 없는 오류가 발생했습니다. |
+| | Unity
Unreal | WEBVIEW\_UNKNOWN\_ERROR | 7999 | 웹뷰 호출 시 알 수 없는 오류가 발생했습니다.(정의되지 않은 오류). |
+| Server | Android
Unity
Unreal
iOS | SERVER\_INTERNAL\_ERROR
TCGB\_ERROR\_SERVER\_INTERNAL\_ERROR | 8001 | 서버 내부 오류 |
+| | Android
Unity
Unreal
iOS | SERVER\_REMOTE\_SYSTEM\_ERROR
TCGB\_ERROR\_SERVER\_REMOTE\_SYSTEM\_ERROR | 8002 | 서버에서 외부 연동 중 오류가 발생했습니다. |
+| | Android
Unity
Unreal
iOS | SERVER\_INVALID\_RESPONSE
TCGB\_ERROR\_SERVER\_INVALID\_RESPONSE | 8003 | 서버가 유효하지 않은 응답을 반환했습니다. |
+| | Android
Unity
Unreal
iOS | SERVER\_UNKNOWN\_ERROR
TCGB\_ERROR\_SERVER\_UNKNOWN\_ERROR | 8999 | 서버에서 알 수 없는 오류가 발생했습니다. |
diff --git a/ko/ios-etc.md b/ko/ios-etc.md
index 942aa736..40262fc3 100644
--- a/ko/ios-etc.md
+++ b/ko/ios-etc.md
@@ -806,9 +806,14 @@ Gamebase에서는 고객 문의 대응을 위한 기능을 제공합니다.
> [NHN Cloud Online Contact Guide](https://docs.nhncloud.com/ko/Contact%20Center/ko/online-contact-overview/)
>
+> [주의]
+>
+> 고객 센터 문의 시 파일 첨부를 위해 카메라 또는 앨범 접근이 필요할 수 있습니다.
+> info.plist에 'Privacy - Camera Usage Description', 'Privacy — Microphone Usage Description'을 설정하십시오.
+
#### Customer Service Type
-**Gamebase 콘솔 > App > InApp URL > Service center** 에서는 아래와 같이 3가지 유형의 고객 센터를 선택할 수 있습니다.
+**Gamebase 콘솔 > App > InApp URL > Service center**에서는 아래와 같이 3가지 유형의 고객 센터를 선택할 수 있습니다.

| Customer Service Type | Required Login |
@@ -878,14 +883,9 @@ TCGBContactConfiguration으로 URL에 추가 정보를 전달할 수 있습니
}];
```
-> [주의]
->
-> 고객 센터 문의 시 파일 첨부를 위해 카메라 또는 앨범 접근이 필요할 수 있습니다.
-> info.plist에 'Privacy - Camera Usage Description', 'Privacy — Microphone Usage Description'을 설정하십시오.
-
#### Request Contact URL
-고객 센터 웹뷰를 표시하는데 사용되는 URL을 얻을 수 있습니다.
+고객 센터 웹뷰를 표시하는 데 사용되는 URL을 얻을 수 있습니다.
**API**
diff --git a/ko/ios-started.md b/ko/ios-started.md
index 9245ff43..a72a7aad 100644
--- a/ko/ios-started.md
+++ b/ko/ios-started.md
@@ -8,7 +8,7 @@
> 최소 사양
>
> * 사용자 실행 환경: iOS 12 이상, Swift 5 이상
-> * 빌드 환경: Xcode 15.0(iOS 17 SDK) 이상
+> * 빌드 환경: Xcode 16.0(iOS 18 SDK) 이상
>
diff --git a/ko/oper-app.md b/ko/oper-app.md
index f1a7dce9..57911b6e 100644
--- a/ko/oper-app.md
+++ b/ko/oper-app.md
@@ -246,12 +246,9 @@ Facebook 개발자 사이트에 등록한 앱의 {앱 아이디}와 {앱 시크
* 
* 여기서 주의할 점은, Gamebase Console에는 Web application 유형의 Client id만 입력해야 하므로 Android 유형의 Client id는 입력하지 않아야 합니다.
* 
-
* Google Credential Manager로 전환된 이후 버전(2.68.0)부터는 Google Cloud Console에서 아래와 같이 설정해야 합니다.
-
* **Google Cloud Console > Google 인증 플랫폼 > 대상** 메뉴에서 **사용자 유형**을 **외부**로, **게시 상태**를 **프로덕션 단계**로 설정합니다.
* 이렇게 설정되지 않은 상태에서 로그인 시도 시 무조건 취소됩니다.
-
* 
##### Google Cloud Console - iOS
diff --git a/ko/release-notes-android.md b/ko/release-notes-android.md
index 855ca82b..6399d97f 100644
--- a/ko/release-notes-android.md
+++ b/ko/release-notes-android.md
@@ -1,12 +1,31 @@
## Game > Gamebase > 릴리스 노트 > Android
+### 2.73.0 (2025. 07. 15.)
+
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Android.zip)
+
+```
+최소 지원 버전이 Android 5.1 이상으로 상향되었습니다.(minSdk 21 → 22)
+Android Gradle Plugin 최소 버전이 7.4.2 이상으로 상향되었습니다.(4.0.1 → 7.4.2)
+```
+
+#### 기능 개선/변경
+
+* 내부 로직 개선
+
+#### 버그 수정
+
+* 로그인 웹뷰에서 화면 회전 시 여백 크기를 잘못 계산하는 오류를 수정했습니다.
+
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Android.zip)
#### 기능 개선/변경
-* 웹소켓 모듈이 중복 호출되는 경우 ArrayIndexOutOfBoundsException이 발생할 수 있는 로직 수정
+* 웹소켓 모듈이 중복 호출되는 경우 ArrayIndexOutOfBoundsException이 발생할 수 있는 로직을 수정했습니다.
+ * 이 문제는 Gamebase Android SDK 2.71.2에서만 발생합니다.
#### 버그 수정
@@ -82,9 +101,7 @@
}
* desugar_jdk_libs 1.x 버전은 Kakaogame 로그인 시 크래시가 발생하므로 2.x 버전 적용을 권장합니다.
-
* Unity Editor 버전에 따라 AGP 버전이 다르므로 AGP 및 Gradle 버전 업데이트가 필요할 수 있습니다.
-
* 'GPGS 자동 로그인' 기능 연동 시 유저에게 GPGS 로그인을 앱 설치 후 한번만 물어보는 초기화 옵션을 추가했습니다.
* **GamebaseConfiguration.Builder.enableGPGSSignInCheck(boolean)**
* 기본 설정은 true로, 유저가 GPGS 로그인을 거부하더라도 Gamebase 초기화 때 GPGS 로그인 창을 다시 표시합니다.
@@ -100,7 +117,6 @@
* 'GPGS 자동 로그인' 기능 연동시 유저가 GPGS 로그인을 하지 않으면 Gamebase 초기화, 로그인, 로그아웃 시 GPGS 로그인을 계속 시도하던 동작을 Gamebase 초기화 때만 시도하도록 변경했습니다.
* Apple ID, Steam, Twitter 로그인 내비게이션 바에 타이틀과 같은 색으로 X 버튼을 표시하도록 변경했습니다.
-
#### 버그 수정
* LaunchingInfo data가 유저 Event Handler에서 업데이트되지 않는 이슈를 수정했습니다.
diff --git a/ko/release-notes-ios.md b/ko/release-notes-ios.md
index 9460cc43..99723612 100644
--- a/ko/release-notes-ios.md
+++ b/ko/release-notes-ios.md
@@ -1,5 +1,20 @@
## Game > Gamebase > 릴리스 노트 > iOS
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-iOS.zip)
+
+#### 기능 개선/변경
+* Xcode 최소 지원 버전이 16.0으로 변경되었습니다.
+
+#### 버그 수정
+* 로그인 후 updateTerms 호출 시, 동의한 약관 정보가 저장되지 않는 버그를 수정하였습니다.
+
+### 2.72.1 (2025. 07. 01.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.1/GamebaseSDK-iOS.zip)
+
+#### 기능 개선/변경
+* iOS 14 특정 기기에서 GameCenter 로그인 시 크래시가 발생하는 버그를 수정하였습니다.
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-iOS.zip)
diff --git a/ko/release-notes-unity.md b/ko/release-notes-unity.md
index 3e9ef3f5..8e409c32 100644
--- a/ko/release-notes-unity.md
+++ b/ko/release-notes-unity.md
@@ -1,5 +1,24 @@
## Game > Gamebase > 릴리스 노트 > Unity
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unity.zip)
+
+#### 기능 추가
+
+#### 기능 개선/변경
+- (Windows, macOS) IdP 로그인 시 웹뷰에서 외부 브라우저로 변경했습니다.
+ - 지원 브라우저
+ - Windows: 모든 브라우저
+ - macOS: Chrome, Safari, Firefox, Whale
+
+- 외부 브라우저 로그인 취소 API를 추가했습니다.
+ - 진행 중인 외부 브라우저 로그인 요청 중 IdP를 변경하고 싶을 때 기존 요청을 취소하기 위함.
+ - CancelLoginWithExternalBrowser()
+
+#### 플랫폼별 변경 사항
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unity.zip)
diff --git a/ko/release-notes-unreal.md b/ko/release-notes-unreal.md
index 5472f693..aa2c8c04 100644
--- a/ko/release-notes-unreal.md
+++ b/ko/release-notes-unreal.md
@@ -1,5 +1,28 @@
## Game > Gamebase > 릴리스 노트 > Unreal
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unreal.zip)
+
+#### 기능 개선/변경
+
+* (Windows) SDK를 사용하지 않는 IdP의 경우 외부 브라우저 로그인으로 진행되도록 변경되었습니다.
+ * 외부 브라우저 로그인 진행 중 로그인을 취소할 수 있는 API가 추가되었습니다.
+ * CancelLoginWithExternalBrowser
+ * API 호출 방법은 다음 가이드 문서를 참고하시기 바랍니다.
+ * [Game > Gamebase > Unreal SDK 사용 가이드 > 인증 > Login > Login with IdP > Cancel Login with External Browser](./unreal-authentication/#cancel-login-with-external-browser)
+* (Windows) Steam 로그인 시 Steamworks 초기화 실패 여부 메시지를 추가하여 원인을 파악하기 쉽도록 변경했습니다.
+* 내부 로직을 개선했습니다.
+
+#### 버그 수정
+
+* Epic Games 관련 기능을 사용하지 않을 때는 EOSSDK 모듈이 포함되지 않도록 수정되었습니다.
+* (Windows) 콘솔에서 설정되지 않은 스토어를 사용할 때 크래시가 발생하지 않도록 수정되었습니다.
+
+#### 플랫폼별 변경 사항
+
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unreal.zip)
diff --git a/ko/unity-authentication.md b/ko/unity-authentication.md
index b3cd8b28..bf0bc59d 100644
--- a/ko/unity-authentication.md
+++ b/ko/unity-authentication.md
@@ -199,9 +199,7 @@ public void Login()
> [주의]
>
-> Standalone에서는 WebViewAdapter를 통해서 로그인을 지원하며 웹뷰가 열려 있을 때 UI로 입력되는 Event를 Blocking하지 않습니다.
->
-> Standalone WebViewAdapter를 사용하여 로그인을 하기 위해서는 IdP 개발자 사이트에서 아래 CallbackURL을 설정 하여야 합니다.
+> Standalone에서 IdP 로그인하려면 IdP 개발자 사이트에서 아래 CallbackURL을 설정해야 합니다.
> - https://id-gamebase.toast.com/oauth/callback
>
@@ -289,6 +287,59 @@ public void LoginWithAdditionalInfo()
}
```
+### Login Cancel
+
+**API**
+
+Supported Platforms
+■ UNITY_STANDALONE
+
+```cs
+static void CancelLoginWithExternalBrowser()
+```
+
+**Example**
+```cs
+public void Login()
+{
+ Gamebase.Login(GamebaseAuthProvider.FACEBOOK, (authToken, error) =>
+ {
+ if (Gamebase.IsSuccess(error))
+ {
+ string userId = authToken.member.userId;
+ Debug.Log(string.Format("Login succeeded. Gamebase userId is {0}", userId));
+ }
+ else
+ {
+ // Check the error code and handle the error appropriately.
+ Debug.Log(string.Format("Login failed. error is {0}", error));
+ if (error.code == GamebaseErrorCode.AUTH_LOGIN_CANCEL_FAILED)
+ {
+ // TODO: Handle the cancellation...
+ }
+ else if (error.code == (int)GamebaseErrorCode.SOCKET_ERROR || error.code == (int)GamebaseErrorCode.SOCKET_RESPONSE_TIMEOUT)
+ {
+ Debug.Log(string.Format("Retry Login or notify an error message to the user.: {0}", error.message));
+ }
+ else if (error.code == GamebaseErrorCode.BANNED_MEMBER)
+ {
+ GamebaseResponse.Auth.BanInfo banInfo = GamebaseResponse.Auth.BanInfo.From(error);
+ if (banInfo != null)
+ {
+ }
+ }
+ }
+ });
+}
+
+public void CancelLoginWithExternalBrowser()
+{
+ // This method only initiates an asynchronous request.
+ // The result of the cancellation is handled in the callback of the Login method.
+ Gamebase.CancelLoginWithExternalBrowser();
+}
+```
+
### Login with Credential
IdP에서 제공하는 SDK를 사용해 게임에서 직접 인증한 후 발급 받은 Access Token 등을 이용하여, Gamebase에 로그인할 수 있는 인터페이스입니다.
diff --git a/ko/unity-etc.md b/ko/unity-etc.md
index 5708c4f7..f5f5734b 100644
--- a/ko/unity-etc.md
+++ b/ko/unity-etc.md
@@ -1196,9 +1196,15 @@ Gamebase 는 고객 문의 대응을 위한 기능을 제공합니다.
> 자세한 NHN Cloud Contact 서비스 이용법은 아래 가이드를 참고하시기 바랍니다.
> [NHN Cloud Online Contact Guide](https://docs.nhncloud.com/ko/Contact%20Center/ko/online-contact-overview/)
+#### 권한 설정
+
+* [Game > Gamebase > Android SDK 사용 가이드 > ETC > Contact](aos-etc/#contact)
+* [Game > Gamebase > iOS SDK 사용 가이드 > ETC > Contact](ios-etc/#contact)
+
+
#### Customer Service Type
-**Gamebase 콘솔 > App > InApp URL > Service center** 에서는 아래와 같이 3가지 유형의 고객 센터를 선택할 수 있습니다.
+**Gamebase 콘솔 > App > InApp URL > Service center**에서 아래와 같이 3가지 유형의 고객 센터를 선택할 수 있습니다.

| Customer Service Type | Required Login |
@@ -1282,25 +1288,9 @@ public void SampleOpenContact()
}
```
-> [주의]
->
-> 고객 센터 문의 시 파일 첨부가 필요할 수 있습니다.
-> 이를 위해 사용자로부터 카메라 촬영이나 Storage 저장에 대한 권한을 런타임에 획득하여야 합니다.
->
-> Android 사용자
->
-> * [Android Developer's Guide :Request App Permissions](https://developer.android.com/training/permissions/requesting)
->
-> * Unity 사용자는 아래 가이드를 참조하여 구현할 수 있습니다.
-> [Unity Guide : Requesting Permissions](https://docs.unity3d.com/2018.4/Documentation/Manual/android-RequestingPermissions.html)
->
-> iOS 사용자
->
-> * info.plist에 'Privacy - Camera Usage Description', 'Privacy - Photo Library Usage Description' 설정을 해주시기 바랍니다.
-
#### Request Contact URL
-고객 센터 웹뷰를 표시하는데 사용되는 URL 을 반환합니다.
+고객 센터 웹뷰를 표시하는 데 사용되는 URL을 반환합니다.
**API**
diff --git a/ko/unreal-authentication.md b/ko/unreal-authentication.md
index 9102975c..a3498323 100644
--- a/ko/unreal-authentication.md
+++ b/ko/unreal-authentication.md
@@ -266,6 +266,31 @@ void USample::LoginWithAdditionalInfo()
}
```
+#### Cancel Login with External Browser
+
+Windows 환경에서 SDK를 사용하지 않는 IdP의 경우 외부 브라우저를 통해 로그인을 진행합니다.
+로그인 과정 중 외부 브라우저를 통한 로그인 플로우인 경우 해당 API를 호출하여 Login 과정을 중단하고 결과를 전달할 수 있습니다.
+
+**API**
+
+Supported Platforms
+
+■ UNREAL_WINDOWS
+
+```cpp
+void CancelLoginWithExternalBrowser();
+```
+
+**Example**
+
+```cpp
+void USample::CancelLogin()
+{
+ UGamebaseSubsystem* Subsystem = UGameInstance::GetSubsystem(GetGameInstance());
+ Subsystem->CancelLoginWithExternalBrowser();
+}
+```
+
### Login with Credential
IdP에서 제공하는 SDK를 사용해 게임에서 직접 인증한 후 발급 받은 Access Token 등을 이용하여, Gamebase에 로그인할 수 있는 인터페이스입니다.
diff --git a/ko/unreal-etc.md b/ko/unreal-etc.md
index d0c91102..66eeda52 100644
--- a/ko/unreal-etc.md
+++ b/ko/unreal-etc.md
@@ -914,9 +914,15 @@ Gamebase 는 고객 문의 대응을 위한 기능을 제공합니다.
> 자세한 NHN Cloud Contact 서비스 이용법은 아래 가이드를 참고하시기 바랍니다.
> [NHN Cloud Online Contact Guide](https://docs.nhncloud.com/ko/Contact%20Center/ko/online-contact-overview/)
+#### 권한 설정
+
+* [Game > Gamebase > Android SDK 사용 가이드 > ETC > Contact](aos-etc/#contact)
+* [Game > Gamebase > iOS SDK 사용 가이드 > ETC > Contact](ios-etc/#contact)
+
+
#### Customer Service Type
-**Gamebase 콘솔 > App > InApp URL > Service center** 에서는 아래와 같이 3가지 유형의 고객 센터를 선택할 수 있습니다.
+**Gamebase 콘솔 > App > InApp URL > Service center**에서는 아래와 같이 3가지 유형의 고객 센터를 선택할 수 있습니다.

| Customer Service Type | Required Login |
@@ -1001,26 +1007,9 @@ void USample::OpenContact()
}
```
-
-> [주의]
->
-> 고객 센터 문의 시 파일 첨부가 필요할 수 있습니다.
-> 이를 위해 사용자로부터 카메라 촬영이나 Storage 저장에 대한 권한을 런타임에 획득하여야 합니다.
->
-> Android 사용자
->
-> * [Android Developer's Guide :Request App Permissions](https://developer.android.com/training/permissions/requesting)
->
-> * Unreal의 경우 엔진에 내장되어 있는 **Android Runtime Permission** 플러그인을 활성화 한 후 아래 API Reference를 확인하여 필요한 권한을 획득하는데 참고 바랍니다.
-> [Unreal API Reference : AndroidPermission](https://docs.unrealengine.com/en-US/API/Plugins/AndroidPermission/index.html)
->
-> iOS 사용자
->
-> * info.plist에 'Privacy - Camera Usage Description', 'Privacy - Photo Library Usage Description'을 설정하십시오.
-
#### Request Contact URL
-고객 센터 웹뷰를 표시하는데 사용되는 URL 을 반환합니다.
+고객 센터 웹뷰를 표시하는 데 사용되는 URL을 반환합니다.
**API**
diff --git a/ko/upgrade-guide.md b/ko/upgrade-guide.md
index a92c60d4..8acfe6a8 100644
--- a/ko/upgrade-guide.md
+++ b/ko/upgrade-guide.md
@@ -1,5 +1,14 @@
## Game > Gamebase > Upgrade Guide
+## 2.71.2
+
+### Android
+
+* Gamebase Android SDK 2.71.2는 다음 이슈가 발생합니다.
+ * 네트워크 연결이 끊어진 후 복구되거나, 앱을 백그라운드로 내렸다가 포그라운드로 활성화한 경우 간헐적으로 웹소켓 모듈에서 ArrayIndexOutOfBoundsException으로 인한 크래시가 발생할 수 있습니다.
+
+ * 이슈가 해결된 Gamebase Android SDK 2.72.0을 사용하세요.
+
## 2.70.0
### Android
@@ -21,7 +30,6 @@
}
* desugar_jdk_libs 1.x 버전은 Kakaogame 로그인 시 크래시가 발생하므로 2.x 버전 적용을 권장합니다.
-
* Unity Editor 버전에 따라 AGP 버전이 다르므로 AGP 및 Gradle 버전 업데이트가 필요할 수 있습니다.
## 2.69.0
diff --git a/zh/release-notes-ios.md b/zh/release-notes-ios.md
index 0db80a37..719b86bc 100644
--- a/zh/release-notes-ios.md
+++ b/zh/release-notes-ios.md
@@ -1,5 +1,20 @@
## Game > Gamebase > Release Notes > iOS
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-iOS.zip)
+
+#### 기능 개선/변경
+* Xcode 최소 지원 버전이 16.0으로 변경되었습니다.
+
+#### 버그 수정
+* 로그인 후 updateTerms 호출 시, 동의한 약관 정보가 저장되지 않는 버그를 수정하였습니다.
+
+### 2.72.1 (2025. 07. 01.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.1/GamebaseSDK-iOS.zip)
+
+#### 기능 개선/변경
+* iOS 14 특정 기기에서 GameCenter 로그인 시 크래시가 발생하는 버그를 수정하였습니다.
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-iOS.zip)
diff --git a/zh/release-notes-unity.md b/zh/release-notes-unity.md
index 17b42927..3e9375e2 100644
--- a/zh/release-notes-unity.md
+++ b/zh/release-notes-unity.md
@@ -1,5 +1,24 @@
## Game > Gamebase > Release Notes > Unity
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unity.zip)
+
+#### 기능 추가
+
+#### 기능 개선/변경
+- (Windows, macOS) IdP 로그인 시 웹뷰에서 외부 브라우저로 변경했습니다.
+ - 지원 브라우저
+ - Windows : 모든 브라우저
+ - macOS : Chrome, Safari, Firefox, whale
+
+- 외부 브라우저 로그인 취소 API를 추가했습니다.
+ - 진행 중인 외부 브라우저 로그인 요청 중 IDP 를 변경하고 싶을 때, 기존 요청을 취소하기 위함.
+ - CancelLoginWithExternalBrowser()
+
+#### 플랫폼별 변경 사항
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unity.zip)
diff --git a/zh/release-notes-unreal.md b/zh/release-notes-unreal.md
index 68111472..e65026d3 100644
--- a/zh/release-notes-unreal.md
+++ b/zh/release-notes-unreal.md
@@ -1,5 +1,28 @@
## Game > Gamebase > Release Notes > Unreal
+### 2.73.0 (2025. 07. 15.)
+[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.73.0/GamebaseSDK-Unreal.zip)
+
+#### 기능 개선/변경
+
+* (Windows) SDK를 사용하지 않는 IdP의 경우 외부 브라우저 로그인으로 진행되도록 변경되었습니다.
+ * 외부 브라우저 로그인을 진행 중일 때, 로그인을 취소할 수 있는 API가 추가되었습니다.
+ * CancelLoginWithExternalBrowser
+ * API 호출 방법은 다음 가이드 문서를 참고하시기 바랍니다.
+ * [Game > Gamebase > Unreal SDK 사용 가이드 > 인증 > Login > Login with IdP > Cancel Login with External Browser](./unreal-authentication/#cancel-login-with-external-browser)
+* (Windows) Steam 로그인 시 Steamworks 초기화 실패 여부 메세지를 추가하여 원인을 파악하기 쉽도록 변경했습니다.
+* 내부 로직을 개선했습니다.
+
+#### 버그 수정
+
+* Epic Games 관련 기능을 사용하지 않을 때는 EOSSDK 모듈이 포함되지 않도록 수정되었습니다.
+* (Windows) 콘솔에서 설정되지 않은 스토어를 사용할 때 크래시가 발생하지 않도록 수정되었습니다.
+
+#### 플랫폼별 변경 사항
+
+* [Gamebase Android SDK 2.73.0](./release-notes-android/#2730-2025-07-15)
+* [Gamebase iOS SDK 2.73.0](./release-notes-ios/#2730-2025-07-15)
+
### 2.72.0 (2025. 06. 24.)
[SDK Download](https://static.toastoven.net/toastcloud/sdk_download/gamebase/v2.72.0/GamebaseSDK-Unreal.zip)
diff --git a/zh/unity-authentication.md b/zh/unity-authentication.md
index d79741d3..0074b2be 100644
--- a/zh/unity-authentication.md
+++ b/zh/unity-authentication.md
@@ -194,9 +194,7 @@ For more information on IdP types that can be used to log in, refer to the **Gam
> [Caution]
>
-> In Standalone, login is supported through WebViewAdapter. It does not block events entered via UI when WebView is open.
->
-> To log in using Standalone WebViewAdapter, the CallbackURL below must be configured on the IdP Developer website.
+> Standalone에서 IdP 로그인을 하기 위해서는 IdP 개발자 사이트에서 아래 CallbackURL을 설정 하여야 합니다.
> - https://id-gamebase.toast.com/oauth/callback
>
@@ -284,6 +282,59 @@ public void LoginWithAdditionalInfo()
}
```
+### Login Cancel
+
+**API**
+
+Supported Platforms
+■ UNITY_STANDALONE
+
+```cs
+static void CancelLoginWithExternalBrowser()
+```
+
+**Example**
+```cs
+public void Login()
+{
+ Gamebase.Login(GamebaseAuthProvider.FACEBOOK, (authToken, error) =>
+ {
+ if (Gamebase.IsSuccess(error))
+ {
+ string userId = authToken.member.userId;
+ Debug.Log(string.Format("Login succeeded. Gamebase userId is {0}", userId));
+ }
+ else
+ {
+ // Check the error code and handle the error appropriately.
+ Debug.Log(string.Format("Login failed. error is {0}", error));
+ if (error.code == GamebaseErrorCode.AUTH_LOGIN_CANCEL_FAILED)
+ {
+ // TODO: Handle the cancellation...
+ }
+ else if (error.code == (int)GamebaseErrorCode.SOCKET_ERROR || error.code == (int)GamebaseErrorCode.SOCKET_RESPONSE_TIMEOUT)
+ {
+ Debug.Log(string.Format("Retry Login or notify an error message to the user.: {0}", error.message));
+ }
+ else if (error.code == GamebaseErrorCode.BANNED_MEMBER)
+ {
+ GamebaseResponse.Auth.BanInfo banInfo = GamebaseResponse.Auth.BanInfo.From(error);
+ if (banInfo != null)
+ {
+ }
+ }
+ }
+ });
+}
+
+public void CancelLoginWithExternalBrowser()
+{
+ // This method only initiates an asynchronous request.
+ // The result of the cancellation is handled in the callback of the Login method.
+ Gamebase.CancelLoginWithExternalBrowser();
+}
+```
+
### Login with Credential
This game interface allows authentication to be made with SDK provided by IdP, before login to Gamebase with provided access token.