GamePot Docs
  • Welcome
  • Getting Started
    • Quickstart
  • Basics
    • GamePot 2.0
      • (中文)
        • Console
          • 使用前
          • 使用 GAMEPOT
        • Dasboard
          • 创建项目和仪表盘
          • 访问仪表盘
          • 转换为付费
          • 用户指标
          • 销售指标
          • 指标术语整理
          • 会员管理
          • 支付管理
          • 公告事项管理(Pro以上)
          • 维护和更新公告(Pro以上)
          • 发送消息
          • 优惠券管理(Pro以上)
          • 客户支持(Pro以上)
          • 游戏
          • 排行榜
          • 好友列表
          • 项目设置
          • 管理仪表盘用户
          • 仪表盘管理员功能
        • Unity SDK
          • Unity SDK_配置要求
          • Unity SDK_SDK安装及环境配置
          • Unity SDK_登录相关功能
          • Unity SDK_第三方账户关联
          • Unity SDK_支付功能
          • Unity SDK_SDK自主提供的登录UI
          • Unity SDK_优惠券功能
          • Unity SDK_推送功能
          • Unity SDK_显示公告事项图片的功能
          • Unity SDK_客户支持功能
          • Unity SDK_恶意使用支付取消的用户重新支付弹窗功能
          • Unity SDK_远程配置功能
          • Unity SDK_游戏日志传输功能
          • Unity SDK_确认AppStatus
          • Unity SDK_第三方SDK关联
          • Unity SDK_关联Firebase SDK时注意事项
          • Unity SDK_在Native环境下修改项目
        • Unreal SDK
          • 安装及环境配置
          • 登录相关功能
          • 第三方账户关联
          • 支付功能
          • 自主提供的登录UI
          • 优惠券功能
          • 推送功能
          • 显示公告事项图片的功能
          • 客户支持功能
          • 恶意使用支付取消的用户重新支付弹窗功能
          • 远程配置功能
          • 游戏日志传输功能
          • 第三方SDK关联
        • Android SDK
          • Android SDK_配置要求
          • Android SDK_安装SDK和配置环
          • Android SDK_登录相关功能
          • Android SDK_关联外部账户
          • Android SDK_支付功能
          • Android SDK_SDK自行提供的登录UI
          • Android SDK_优惠券功能
          • Android SDK_推送功能
          • Android SDK_公告事项图像显示功能
          • Android SDK_客户支持功能
          • Android SDK_维护及强制更新功能
          • Android SDK_远程配置功能
          • Android SDK_游戏日志传输功能
          • Android SDK_确认AppStatus
          • Android SDK_关联第三方SDK
        • iOS SDK
          • iOS SDK_配置要求
          • iOS SDK_安装及环境配置
          • iOS SDK_登录相关功能
          • iOS SDK_第三方账户关联
          • iOS SDK_支付功能
          • iOS SDK_自主提供的登录UI
          • iOS SDK_优惠券功能
          • iOS SDK_推送功能
          • iOS SDK_显示公告事项图片的功能
          • iOS SDK_客户支持功能
          • iOS SDK_维护及强制更新功能
          • iOS SDK_远程配置功能
          • iOS SDK_游戏日志传输功能
          • iOS SDK_确认AppStatus
          • iOS SDK_第三方SDK关联
        • Javascript SDK
          • JS SDK_安装及环境配置
          • JS SDK_重置
          • JS SDK_登录,退出
          • JS SDK_插件
        • Server API
          • 请求发放付费道具
          • Gamepot user ID verification(optional)
          • 外部支付
        • Open API
          • 查询用户
          • 查询用户停用
          • 设置用户停用
          • 查询每日访问者(DAU)
          • 查询新用户(NRU)
          • 查询同时访问者(CCU)
          • 查询支付
          • 查询取消支付
          • 查询支付销售统计
          • 查询角色
          • 查询一般优惠券的使用
          • 使用优惠券
          • 查询展示中的公告事项
          • 排名板
            • 排名板用户分数登录API
            • 导入排名板用户分数API
            • 使用特定搜索词获取分数API
            • 获取排名板信息和用户数的API
            • 用排名板查询用户分数的API
            • 删除登录排行板用户API
            • 排名板登录API
            • 排名板修改API
            • 排名板删除API
          • 好友管理
          • 提前预约参与
          • 提前预约验证码确认
          • 查询本人认证结果
        • Troubleshooting
          • 在64-bit环境下的构建过程中,尝试使用NAVER ID登录时发生崩溃(构建API 28以上的Android)
          • 上传Play Store APK时,会发出com.nhncorp.nelo2.android.util加密模式安全通知
          • 构建iOS时发生错误
          • Line i386 x86_64 IOS Archive上传问题
          • AdbrixRM i386 x86_64 iOS构建问题
          • 使用NAVER ID登录时出现的NaverThirdPartyLogin.framework i386 x86_64问题
          • Unity 2018.4.4以上、Unity 2019.2.0以上版本中的Android构建问题
          • (Unity)应用NAVER Lounge SDK(以NaverSDK Ver 1.1.1为例进行说明)
          • (Unity)应用GoogleMobileAds SDK(以GoogleMobileAds-v6.1.2为例进行说明)
          • (Unity)应用Appsflyer/Singular SDK(以appsflyer-v6.3.2为例进行说明)
          • (Unity)单独应用Firebase SDK时(以Firebase Unity 8.7.0为例进行说明)
          • 升级到android、targetsdkversion 31以上时,出现以下错误和应用无法安装的问题
          • 在Android OS 13设备上无法接收推送设置时
          • GAMEPOT SDK中收集的个人信息类型
          • (Unity) 使用Unity编辑选项中的minify时
        • FAQ
          • 无法登录!
          • 无法付款!
          • 未收到應用內項目列表
          • Adbrix Remaster
          • Naver Cafe
          • 服务推出
          • 推送
          • 应用签名
          • 用户ID迁移方法
          • 用户ID恢复
          • 仪表盘提前预约页面关联方法
          • 案例集
          • 版本 3.5.1 中的變更 - 由於安全問題,禁止使用此版本。
          • Ver Unity 2.1.1 To Ver Unity 2.1.2 Or New Version
          • android, targetsdkversion 升到31的时候
          • Gamepot v3.6.0 更新
      • NPUSH
        • FCM (Android)
        • APNs (iOS)
      • NPUSH (English)
        • FCM (Android)
        • APNs (iOS)
      • NPUSH (日本語)
        • FCM (Android)
        • APNs (iOS)
      • NPUSH (中文)
        • FCM (Android)
        • APNs (iOS)
    • GamePot 3.0
      • GAMEPOT 3.0 (KR)
        • GAMEPOT 사용
          • 실시간 통계
          • Apple App Store shared secret
          • Google Play Store API 인증
          • Unity SDK
          • Android SDK
          • iOS SDK
          • Javascript SDK
          • 스토어 환경 설정
            • Google Play Store 환경 설정
            • App Store Connect
            • ONE store
          • 로그인 인증 환경 설정
            • 구글 로그인
            • 애플 아이디 로그인
            • 페이스북 로그인
            • 스팀 로그인
          • 푸시
          • 고객센터
          • 사용자 통계
          • 동시 접속 사용자
          • 쿠폰
          • 플러그인
          • 게임팟 NPUSH 서비스 전환 및 푸시 서비스 변경 안내
          • 게임팟 스튜디오 ( 빌드 관리, 게임 런쳐 )
          • 로컬 푸시
          • 비속어 필터
      • GAMEPOT 3.0 (EN)
        • Using GAMEPOT
          • Real-Time Statistics
          • Apple App Store shared secret
          • Google Play Store API Authentication
          • Unity SDK
          • Android SDK
          • iOS SDK
          • Store Settings
            • Google Play Store Configuration
            • App Store Connect
            • ONE store
          • Login Authentication Settings
            • Google Login
            • Apple ID Login
            • Facebook Login
          • PUSH
          • Customer Support
          • User Statistics
          • Concurrent Users
          • Plugin
    • Interactive blocks
    • OpenAPI
    • Integrations
    • GamePot Console
      • 메인화면
      • 통합 대시보드
      • 대시보드
      • 분석
        • 사용자 분석
        • 매출 분석
      • 운영
        • 사용자
          • 목록
          • 일간 활성 사용자
          • 신규 등록 사용자
          • 동시 접속자
          • 이용정지
        • 구매
          • 목록
          • 앱 내 구매
          • 통계
          • 취소된 결제
          • 외부 결제
        • 점검 및 업데이트
          • 점검
          • 업데이트
        • 메시지
          • 푸시 알림
          • 문자 메시지
        • 쿠폰
          • 일반 쿠폰
          • 키워드 쿠폰
          • 쿠폰 사용량
        • 고객 지원
          • 대시보드
          • 고객 문의
          • 통계
          • 리뷰
          • 페이지
          • 설정
            • 일반
            • 규칙
            • 분류
            • 스타일링
            • 공지
            • FAQ
            • 정책 약관
            • 이메일 알림
        • 게임
          • 공지사항
          • 랭킹
          • 친구
          • 플레이어
          • 선물
          • 아이템
        • 게임 운영
          • 데이터 저장소
          • 원격 설정
          • 블랙리스트
      • 설정
        • 프로젝트 설정
        • 관리자
Powered by GitBook
On this page
  • 요구 사양
  • SDK 설치 및 환경 구성
  • SDK 설치
  • Podfile 설정
  • 사전 준비
  • 초기화
  • 로그인
  • 로그아웃
  • 결제
  • iOS StoreKit 설정
  • 인앱 정보 가져오기
  • 결제 요청
  • 문제해결
  1. Basics
  2. GamePot 3.0
  3. GAMEPOT 3.0 (KR)
  4. GAMEPOT 사용

iOS SDK

iOS에서 게임을 개발하기 위한 GAMEPOT iOS SDK 사용법에 대해 설명합니다. SDK를 설치하고 환경을 구성함으로써 게임과 대시보드를 연동할 수 있습니다.

요구 사양

iOS용 GAMEPOT SDK를 사용하기 위한 요구 사양은 다음과 같습니다.

  • 최소 사양: iOS 15 이상 (하위 버전의 iOS 지원이 필요하면 dl_help_game@navercorp.com 메일로 문의해 주시기 바랍니다. )

SDK 설치 및 환경 구성

iOS SDK를 설치한 후 환경을 구성하여 GAMEPOT 대시보드와 게임을 연동하고 게임 개발에 필요한 기능을 사용할 수 있습니다.

GAMEPOT SDK에서 지원하는 언어는 아래와 같습니다.

  • 한국어, 영어, 이탈리아어, 태국어 ,베트남어, 일본어, 중국어(간체/번체), 인도네시아어, 독일어, 스페인어, 프랑스어

앱 실행 시 디바이스 언어에 따라 SDK 내 지원 언어로 표기되며 미지원 언어는 영어로 표기됩니다.

SDK 설치

GAMEPOT iOS SDK를 설치하고 프로젝트를 구성하는 방법은 다음과 같습니다.

  1. 관리자 계정으로 대시보드에 로그인해 주세요.

  2. iOS 프로젝트 폴더 내 CocoaPods를 통해 Podfile을 생성해 주세요.

pod init
  1. podfile 파일에 NBase SDK를 추가해 주세요. Podfile 정의 내용은 아래 "Podfile 설정" 항목을 참고하여 주십시오.

  2. NBase SDK를 CocoaPods를 통해 설치해주세요.

pod install

COCOAPODS

Podfile 설정

편집기로 Podfile을 열어 GAMEPOT SDK에 필요한 프레임워크를 추가합니다.

platform :ios, '15.0'

# 프로젝트 메인 타겟
target '프로젝트 메인 타겟' do
...
  pod 'Alamofire', '5.8.1'
  pod 'Apollo', '1.14.1'
  pod 'Socket.IO-Client-Swift', '16.1.0'
  pod 'AppAuth', '1.6.2'
  pod 'SDWebImage', '5.19.1'
  pod 'NBase', '3.0.51'
...
end

예) 구글 로그인과 페이스북 로그인을 사용하는 경우

platform :ios, '15.0'

target 'GAMEPOT_GAME' do
 use_frameworks!

 # Pods for Nbase SDK
 pod 'Alamofire', '5.8.1'
 pod 'Apollo', '1.14.1'
 pod 'Socket.IO-Client-Swift', '16.1.0'
 pod 'AppAuth', '1.6.2'
 pod 'SDWebImage', '5.19.1'
 pod 'NBase', '3.0.51'
 pod 'NBaseAdapterProviderGoogle', '3.0.1'
 pod 'NBaseAdapterProviderFacebook', '3.0.51'
end
Name
Version
Type
Dependeny modules

NBase

3.0.51

게임팟 기본 모듈

X

NBaseAdapterProviderGoogle

3.0.1

구글 로그인

NBaseAdapterProviderFacebook

3.0.51

페이스북 로그인

FBSDKLoginKit (16.3.1)

NBaseAdapterProviderNaver

3.0.1

네이버 로그인

NBaseAdapterProviderLine

3.0.1

라인 로그인

NBaseAdapterProviderX

3.0.1

X 로그인

이메일, 애플, 게스트 로그인의 경우 기본 모듈에 적용되어 있습니다.

Apollo 패키지 매니저 추가

No such module 'Apollo' 오류 발생 시에 Swift Package Manager 실행 후 Apollo 프레임워크를 추가해 주세요.

'+' 버튼 클릭 후에 Add Package Collection ' https://github.com/apollographql/apollo-ios.git ' 추가 후 apollo-ios 선택 후 Add Package 에서 프로젝트 메인 타겟을 선택해 주세요.

사전 준비

  1. 프로젝트ID 와 프로젝트 키는 대시보드 → 프로젝트 설정에서 복사 하실 수 있습니다.

  2. 로그인, 스토어, 연동에 대한 환경설정은 모두 대시보드 → 프로젝트 설정 에서 추가/수정 하실 수 있습니다.

  3. 인앱 결제를 위한 스토어마다 아이템을 등록해 주세요. 대시보드 → 결제 → 인앱에서 추가해 주세요.

초기화

초기화를 수행하려면 게임을 시작할 때 로드되는 첫 장면에 사용되는 개체에 아래 코드를 추가해 주십시오.

import NBase

NBase.initialize([projectId], projectKey: [projectKey], storeId: [storeId], language: [language], region: [region]) { result in
    switch result {
    case .success(let data):
        NBase.showToast(message: data?.encodeToJson() ?? "")
    case .failure(let error):
        NBase.showToast(message: error.errorDescription ?? "")
    }
}
[NBaseBridge.shared initialize:[projectId] projectKey:[projectKey] storeId:[storeId] language:[language] region:[region] :^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    if (error) {
        NSLog(@"Initialization Error: %@", error.localizedDescription);
    } else {
        NSLog(@"Initialization succeeded with result: %@", result);
    }
}];
  • Parameter

Key
Type
Description
Required

projectId

String

프로젝트 ID (대시보드 → 프로젝트 설정)

O

projectKey

String

프로젝트 키 (대시보드 → 프로젝트 설정)

O

storeId

String

스토어명 (apple)

O

language

String

언어 (en,ko,jp ...)

O

region

String

리전명 (kr, jp, sg, us, eu, preview)

O

  • Callback

Key
Type
Description

status

Bool

상태

language

String

언어

country

String

국가

remote_ip

String

IP

platform

String

플랫폼

sandbox

Bool

샌드박스 여부

로그인

개발사에서 구현한 로그인 UI에 따라 로그인 버튼을 클릭했을 때 동작하는 SDK 로그인 기능을 사용하려면 아래 코드를 사용해 주십시오.

NBase.signIn(serviceType: .google) { result in
    switch result {
    case .success(let data):
        NBase.showToast(message: data?.encodeToJson() ?? "")
        break
    case .failure(let error):
        if let nBaseError = error as? NBaseError {
            switch nBaseError {
            case .noMaintenance:  // 점검 중
                NBase.showToast(message: error.localizedDescription)
            case .noUpdated : // 업데이트
                NBase.showToast(message: error.localizedDescription)
            default:
                print("An unknown error occurred: \(error)")
                NBase.showToast(message: error.localizedDescription)
            }
        } else {
            print("An error occurred: \(error)")
            NBase.showToast(message: error.localizedDescription)
        }
    }
}
[NBaseBridge.shared signIn:serviceType :^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    if (error) {
        NSLog(@"signIn Error: %@", error.localizedDescription);
    } else {
        NSLog(@"signIn succeeded with result: %@", result);
    }
}];
  • Parameter

Key
Description

SignInServiceType.google

구글

SignInServiceType.anonymous

게스트

SignInServiceType.facebook

페이스북

SignInServiceType.apple

애플

SignInServiceType.kakao

카카오

SignInServiceType.x

X

SignInServiceType.line

라인

SignInServiceType.naver

네이버

SignInServiceType.github

깃헙

SignInServiceType.microsoft

마이크로소프트

SignInServiceType.huawei

화웨이

  • Callback

Key
Type
Description

id

String

사용자 ID

name

String

사용자 이름

nickname

String

사용자 닉네임

email

String

이메일

token

String

토큰

age

Int

나이

birth

String

생년월일

sex

String

성별

profile

String

프로필 URL

mobile

String

전화 번호

자동 로그인 (옵션)

초기화 한 후에 마지막으로 로그인한 인증 수단으로 자동 로그인을 시도합니다.

NBase.signInLastLoggedIn(completionHandler: { result in
    switch result {
    case .success(let data):
        NBase.showToast(message: data?.encodeToJson() ?? "")
    case .failure(let error):
        NBase.showToast(message: error.errorDescription ?? "")
    }
})
[NBaseBridge.shared signInLastLoggedIn:^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    if (error) {
        NSLog(@"signInLastLoggedIn Error: %@", error.localizedDescription);
    } else {
        NSLog(@"signInLastLoggedIn succeeded with result: %@", result);
    }
}];

자체 아이디 비밀번호 인증하기 (옵션)

사용자가 이메일 주소와 비밀번호를 사용하여 로그인할 수 있게 하는 인증 메서드입니다. 사용자의 이메일 주소와 비밀번호를 기반으로 사용자 인증을 수행합니다. 이 기능은 전통적인 이메일/비밀번호 기반의 인증 시스템에서 중요한 역할을 합니다.

NBase.signInWithPassword(username: [username], password: [password], options: [option]) { result in
    switch result {
    case .success(let user):
        NBase.showToast(message: user?.encodeToJson() ?? "")
    case .failure(let error):
        NBase.showToast(message: error.errorDescription ?? "")
    }
}
[NBaseBridge.shared signInWithPassword:[username] password:[password] options:[options] :^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    if (error) {
        NSLog(@"signInWithPassword Error: %@", error.localizedDescription);
    } else {
        NSLog(@"signInWithPassword succeeded with result: %@", result);
    }
}];

로그아웃

SDK 로그아웃 기능을 사용하려면 아래 코드를 사용해 주십시오.

NBase.signOut() { result in
    switch result {
    case .success(let status):
        NBase.showToast(message: "signOut \((status != nil) ? "true" : "false")")
    case .failure(let error):
        NBase.showToast(message: error.errorDescription ?? "")
    }
}
[NBaseBridge.shared signOut:^(NSNumber *result, NSError *error) {
    if (error) {
        NSLog(@"signOut Error: %@", error.localizedDescription);
    } else {
        NSLog(@"signOut: %@", result.boolValue ? @"YES" : @"NO");
    }
}];
  • Callback

Key
Type
Description

status

Bool

성공 여부

결제

iOS StoreKit 설정

Xcode 에서 StoreKit 를 New File 로 생성해 주셔야 합니다.

Synced Today 앞 새로고침 버튼을 클릭하시면 그림과 같이 Apple 에 등록된 인앱 정보가 표시되어야 합니다.

인앱 정보 가져오기

결제하실 때에 화면에 결제 정보와 현지 통화 정보를 표시해야 합니다. 아래 함수를 통해서 현재 결제 통화나 이름 등을 가져올 수 있습니다. 만일 정상적으로 가져오지 못하는 경우 콘솔 세팅을 확인해 주시기 바랍니다.

let products = NBase.getProductItems()
[NBaseBridge.shared getProductItems:^(NSString * _Nullable result) {
    NSLog(@"getProductItems result: %@", result);
}];
  • Callback

Key
Type
Description

id

String

상품 ID

name

String

상품 이름

currency

String

통화

price

Float64

상품 가격

localizedPrice

String

현지화된 가격

description

String

상품 설명

결제 요청

가져온 인앱 정보에 productId 로 결제를 요청하실 수 있습니다.

NBase.purchase(productId: [productId], metadata: [metadata], options: [options]) { result in
    switch result {
    case .success(let data):
        NBase.showToast(message: data?.encodeToJson() ?? "")
    case .failure(let error):
        NBase.showToast(message: error.errorDescription ?? "")
    }
}
[NBaseBridge.shared purchase:[productId] metadata:[metadata] options:[options] :^(NSDictionary * _Nullable result, NSError * _Nullable error) {
    if (error) {
        NSLog(@"purchase Error: %@", error.localizedDescription);
    } else {
        NSLog(@"purchase succeeded with result: %@", result);
    }
}];
  • Parameter

Key
Type
Description
Required

productId

String

상품 ID (대시보드 → 결제 → 인앱 아이템)

O

metadata

String

메타데이터

X

options

String

결제 옵션 기능

X

  • Callback

Key
Type
Description

orderId

String

주문 ID

receipt

String

영수증

signature

String

서명

productId

String

상품 ID

storeId

String

스토어 ID

country

String

국가

quantity

Int

수량

paymentId

String

결제 ID

currency

String

통화

serverId

String

서버 ID

playerId

String

플레이어 ID

userdata

String

사용자 데이터

metadata

String

메타데이터

options

String

결제 옵션

authCode

String

인증 코드

level

Int

레벨

price

Float64

가격

문제해결

Q. Authorization failed: Error Domain=AKAuthenticationError Code=-7026 A. TARGETS > +Capability 를 클릭하여 Sign in with Apple 을 추가합니다.

PreviousAndroid SDKNextJavascript SDK

Last updated 4 months ago

iOS SDK의 경우 를 설치하셔야만 정상 설치가 가능합니다.

로그인 별로 [] 을 참고하여, 콘솔에 설정하고 대시보드에 추가해야만 합니다.

인앱 결제 시에 [] 을 참고하여, 콘솔에 설정하고 대시보드에 추가해야만 합니다.

결제 전에 에 해당 스토어에 맞도록 설정 하셔야 합니다. 또한, 대시보드 → 결제 → 인앱에 아이템이 추가 안되어 있을 경우 'ProductID not found' 라는 오류가 발생됩니다.

cocoapods
로그인 인증 환경 설정
스토어 환경 설정
스토어 환경 설정