- 印刷する
- PDF
iOS SDK
- 印刷する
- PDF
最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。
Classic/VPC環境で利用できます。
iOSでゲームを開発するための GAMEPOT iOS SDKの使用方法について説明します。SDKをインストールして環境を構成することで、ゲームとダッシュボードを連携できます。
システム要件
iOS用 GAMEPOT SDKを使用するためのシステム要件は、次の通りです。
- 最低スペック: iOS 15以降
(下位バージョンの iOSへの対応が必要な場合は、お問い合わせチャネルにてご確認ください。)
SDKのインストールと環境の構成
iOS SDKをインストールしてから環境を構成し、GAMEPOTのダッシュボードとゲームを連携してゲーム開発に必要な機能を使用できます。
GAMEPOT SDKでサポートしている言語は次の通りです。
- 韓国語、英語、イタリア語、タイ語、ベトナム語、日本語、中国語(簡体字/繁体字)、インドネシア語、ドイツ語、スペイン語、フランス語
アプリ実行時にデバイスの言語によって SDK内サポート言語で表記され、サポートされていない言語は英語で表記されます。
SDKのインストール
GAMEPOT iOS SDKをインストールしてプロジェクトを設定する方法は次の通りです。
- 管理者アカウントでダッシュボードにログインします。
- iOSプロジェクトフォルダの CocoaPodsを利用して Podfileを作成します。
pod init
- podfileファイルに NBase SDKを追加します。Podfileの定義は以下の「Podfileの設定」項目をご参照ください。
- CocoaPodsを利用して NBase SDKをインストールします。
pod install
iOS SDKを正常にインストールするには、cocoapodsがインストールされている必要があります。
Podfileの設定
エディタで Podfileを開き、GAMEPOT SDKに必要なフレームワークを追加します。
platform :ios, '15.0'
# プロジェクトのメインターゲット
target 'プロジェクトのメインターゲット' do
...
pod 'NBase'
...
end
- Googleログインと Facebookログインを使用する場合
platform :ios, '15.0'
target 'GAMEPOT_GAME' do
use_frameworks!
# Pods for Nbase SDK
pod 'NBase'
pod 'NBaseAdapterProviderGoogle'
pod 'NBaseAdapterProviderFacebook'
end
Name | Version | Type | Dependeny modules |
---|---|---|---|
NBase | 3.0.56 | GAMEPOT基本モジュール | Apollo |
NBaseAdapterProviderGoogle | 3.0.56 | Googleログイン | |
NBaseAdapterProviderFacebook | 3.0.56 | Facebookログイン | FBSDKLoginKit (17.4.0) |
NBaseAdapterProviderNaver | 3.0.56 | NAVERログイン | |
NBaseAdapterProviderLine | 3.0.56 | LINEログイン | |
NBaseAdapterProviderKakao | 3.0.56 | Kakaoログイン | KakaoOpenSDK |
NBaseAdapterProviderX | 3.0.56 | Xログイン |
メール、Apple、ゲストログインの場合は基本モジュールに適用されています。
一部の依存関係にあるフレームワークは Swift Package Managerを通じてのみ追加できます。
Xcodeでプロジェクト設定に移動し、Package Dependencies設定に移動します。
[+] ボタンをクリックして Add Package Collectionから「https://github.com/apollographql/apollo-ios.git」を追加します。続けて apollo-iosを選択し、Add Packageして Apollo、ApolloAPIモジュールをプロジェクトのメインターゲットに追加します。
Name Dependeny modules Location Version Framework NBase Apollo https://github.com/apollographql/apollo-ios.git 1.15.2 NBaseAdapterProviderKakao KakaoOpenSDK https://github.com/kakao/kakao-ios-sdk 2.23.0
事前準備
- プロジェクト IDとプロジェクトキーはダッシュボード > プロジェクトの設定でコピーします。
- ログイン、ストア、連携の環境設定はダッシュボード > プロジェクトの設定で行えます。
- ログイン別にログイン手段別環境設定を参照し、コンソールに設定してダッシュボードに追加します。
- In-App決済時はストア別環境設定を参照し、コンソールに設定してダッシュボードに追加します。
- In-App決済のために、ストアごとにアイテムを登録します。 ダッシュボード > 決済 > In-Appで追加します。
リセット
リセットを実行するには、ゲームを始める際にロードされる最初の画面に使用されるインスタンスに、以下のコードを追加します。
swift:
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 ?? "")
}
}
Objective-C:
[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ログイン機能を使用するには、以下のコードを使用します。
swift:
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)
}
}
}
Objective-C:
[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 | Apple |
SignInServiceType.kakao | Kakao |
SignInServiceType.x | X |
SignInServiceType.line | LINE |
SignInServiceType.naver | NAVER |
SignInServiceType.github | GitHub |
SignInServiceType.microsoft | Microsoft |
SignInServiceType.huawei | HUAWEI |
- Callback
Key | Type | Description |
---|---|---|
id | String | ユーザー ID |
name | String | ユーザーの名前 |
nickname | String | ユーザーのハンドルネーム |
String | メールアドレス | |
token | String | トークン |
age | Int | 年齢 |
birth | String | 生年月日 |
sex | String | 性別 |
profile | String | プロファイル URL |
mobile | String | 電話番号 |
自動ログイン(オプション)
リセットの後、最後にログインした認証手段で自動ログインを試みます。
swift:
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 ?? "")
}
})
Objective-C:
[NBaseBridge.shared signInLastLoggedIn:^(NSDictionary * _Nullable result, NSError * _Nullable error) {
if (error) {
NSLog(@"signInLastLoggedIn Error: %@", error.localizedDescription);
} else {
NSLog(@"signInLastLoggedIn succeeded with result: %@", result);
}
}];
独自の IDとパスワード認証(オプション)
ユーザーがメールアドレスとパスワードを使用してログインできるようにする認証メソッドです。ユーザーのメールアドレスとパスワードに基づいてユーザー認証を行います。この機能は、従来のメール/パスワードベースの認証システムで重要な役割を果たします。
swift:
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 ?? "")
}
}
Objective-C:
[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ログアウト機能を使用するには、以下のコードをお使いください。
swift:
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 ?? "")
}
}
Objective-C:
[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 | 成功したかどうか |
決済
決済の前に、ストア別環境設定にそのストアに合わせて設定する必要があります。
さらに、ダッシュボード > 決済 > In-Appにアイテムが追加されていない場合、「ProductID not found」というエラーが発生します。
In-App情報の取得
決済の際は、画面に決済情報と現地の通貨情報を表示する必要があります。以下の関数を使用すると現在の決済通貨や名前などを取得できます。正常に取得できない場合は、コンソール設定をご確認ください。
swift:
let products = NBase.getProductItems()
Objective-C:
[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 | 商品の説明 |
決済リクエスト
取得した In-App情報にある Product IDで決済をリクエストできます。
swift:
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 ?? "")
}
}
Objective-C:
[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(ダッシュボード > 決済 In-Appアイテム) | 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を追加してください。