Naver Game
Korean
Korean
  • Naver Game SDK 소개
  • SDK 적용 전 준비사항
  • 필독★ 카페 플러그 SDK에서 네이버 게임 SDK로 교체하는 경우
  • Integration Guide
    • UNITY
    • Android
    • iOS
    • UNREAL
    • Cocos2d-x
  • Naver Game SDK 개발 FAQ
  • Naver Game SDK 운영/제휴 FAQ
  • Naver Game SDK Release Note
Powered by GitBook
On this page
  • Quick Start
  • 1. 샘플 프로젝트 구성
  • 2. 환경설정
  • 3. 초기화
  • 네이버 게임 SDK 시작
  • 콜백 델리게이트
  • 콜백 델리게이트 등록
  • 콜백 델리게이트 구현

Was this helpful?

  1. Integration Guide

iOS

PreviousAndroidNextUNREAL

Last updated 10 months ago

Was this helpful?

Quick Start

최신 버전 다운로드

1. 샘플 프로젝트 구성

폴더 및 파일 이름

설명

Sample/NNG SDK Sample

Xcode용 샘플 프로젝트가 있는 폴더

sample/NNG SDK Sample/Libraries

iOS용 네이버 게임 SDK 라이브러리 파일이 있는 폴더

README.md

리드미 파일

CHANGELOG.md

버전 별 주요 변경점을 서술한 파일

2. 환경설정

네이버 게임 iOS SDK는 iOS 12.0 버전부터 지원합니다.

네이버 게임 SDK를 사용하려면 XCode에서 다음과 같이 개발 환경을 설정합니다.

  • TARGETS 항목 중 실행될 앱을 선택합니다. (샘플 프로젝트 기준NNG SDK Sample 타겟)

  • Build Setting 탭을 선택하고 Linking 항목에서 Other Linker Flags를 찾습니다.

    • Basic 또는 Customized모드 인 경우 Other Linker Flag가 보이지 않는 경우도 있습니다.이 경우 All 모드를 선택합니다.

    • 우상단에 위치한 검색창에 Other Linker Flag를 입력하면 쉽게 찾을 수 있습니다.

  • Other Linker Flags에 -ObjC 옵션과 -lc++ 옵션을 추가합니다.

  • Info.plist에 아래의 사용자 권한 획득 옵션을 추가합니다.

    • Privacy - Camera Usage Description

    • Privacy - Photo Library Usage Description

  • TARGETS 항목 중 실행될 앱을 선택하고 Info탭의 URL Types 항목에 Identifier 값과 URL Schemes값을 입력합니다.

  • Identifier 값은 해당 TARGET의 General 탭에서 확인할 수 있습니다.

  • (1.3.5 버전 이하) App TARGET의 General 탭에서 아래 두 가지의 프레임워크를 추가합니다. NaverLogin 프레임워크는 샘플 프로젝트 하위의 Library 폴더 안에 있습니다.

    • NaverLogin.framework

    • SafariService.framework

  • (1.3.5 버전 이상) App TARGET의 General 탭에서 아래 두 가지의 프레임워크를 추가합니다.NaverThirdPartyLogin 프레임워크는 샘플 프로젝트 하위의 Library 폴더 안에 있습니다.

    • NaverThirdPartyLogin.framework (Embed&Sign)

    • SafariService.framework

3. 초기화

  • Naver Game SDK의 뷰가 올라갈 부모 뷰 컨트롤러를 지정합니다.

    [NNGSDKManager.shared setClientId:@"UKvNABLDsyEJusJGsXL2"
                         clientSecret:@"rK4suc_Qd0"
                             loungeId:@"naver_game_4developer"];
                             
    [NNGSDKManager.shared setParentViewController:self];

NNGSDKManager 클래스 NNGSDKManager 클래스는 네이버 게임 SDK를 제어하는 클래스입니다. NNGSDKManager 클래스로 제어할 수 있는 기능에 관한 자세한 내용은 아래 내용을 참고하십시오.

  • 네이버 로그인 후 처리를 위해 AppDelegate의 - application:openURL:options: 메소드에 아래 코드를 추가합니다.

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {

    // ... Some codes ...
    
    return [NNGSDKManager.shared handleCallbackUrl:url];
}

네이버 게임 SDK 시작

1. countryCode 프로퍼티

국가코드

국가

CN

중국

JP

일본

KR

대한민국

TH

태국

US

미국

2. canWriteFeedByScreenshot 프로퍼티

사용자가 화면을 캡처했을 때 글 쓰기 숏컷을 노출할지의 여부를 나타냅니다. 글쓰기 숏컷은 다음과 같은 화면입니다.

3. appName 프로퍼티

4. appScheme 프로퍼티

5. authSettingDescription 프로퍼티

6. registerMemberGameId: 메서드

네이버 아이디와 게임 아이디를 연동하기 위해 게임 아이디를 등록하는 메서드입니다. 다음은 registerMemberGameId: 메서드를 구현한 예입니다.

[NNGSDKManager.shared registerMemberGameId:@"gameId123"];

7. presentBannerViewController: 메서드

presentBannerViewController: 메서드는 배너 화면을 보여주는 메서드입니다. 다음은 presentBannerViewController: 메서드를 구현한 예입니다.

[NNGSDKManager.shared presentBannerViewController];

8. presentSorryViewController: 메서드

presentSorryViewController: 메서드는 긴급 공지 화면을 보여주는 메서드입니다. 게임 API통신이 실패한 경우 이 메서드를 사용하고 SDK의 진입점이 되는 다른 UI들을 숨기거나 비활성화하여 사용자가 SDK를 사용할 수 없도록 구현하는 것을 권장합니다. 다음은 presentSorryViewController: 메서드를 구현한 예입니다.

[NNGSDKManager.shared presentSorryViewController];

9. presentBoardViewControllerWith: 메서드

presentBoardViewControllerWith: 메서드는 게시판을 보여주는 메서드입니다. 다음은 presentBoardViewControllerWith: 메서드를 구현한 예입니다.

[NNGSDKManager.shared presentBoardViewControllerWith:@1];

기존에 SDK 관리페이지에서 게시판 등록 시 확인할 수 있는 아이디 값은 1.2.0 버전 이후에는 사용하지 않습니다.위에설명된 게시판 아이디 값으로의 변경이 필요합니다.

10. presentFeedViewControllerWith:scheduled: 메서드

presentFeedViewControllerWith:scheduled: 메서드는 글 상세를 보여주는 메서드입니다. 글의 ID를 파라미터로 갖습니다. 다음은 presentFeedViewControllerWith:scheduled: 메서드를 사용하여 ID가 12345인 글의 상세화면을 여는 코드입니다.

[NNGSDKManager.shared presentFeedViewControllerWith:@12345 scheduled:NO];

scheduled 파라미터는 예약글 여부를 의미합니다. 예약글을 업로드 하면 글의 ID와는 다른, 예약글의 ID가 발급됩니다. 예약글의 ID가 123인 글의 상세화면을 여는 코드는 다음과 같습니다.

[NNGSDKManager.shared presentFeedViewControllerWith:@123 scheduled:YES];

예약글 ID를 사용하여 글 상세를 여는 코드는 글이 등록되고 글 ID가 발급되더라도 정상적으로 동작하기 때문에 추후에도 코드에 수정이 필요 없습니다.

예약글을 등록하였으나 예약한 시간이 되지 않아 아직 노출되지 않은 글과 연결된 배너를 클릭한 경우 아무 동작도 발생하지 않습니다.

11. presentFeedWritingWithBoardId:title:text:imageFilePath: 메서드

글 상세 화면을 여는 메서드입니다.파라미터로 받는 boardId, title, text, imageFilePath 값들은 모두 생략가능하며 생략하지 않은경우에는 해당 값들이 입력된 상태로 글 쓰기 화면에 진입합니다.다음은 presentFeedWritingWithBoardId:title:text:imageFilePath: 메서드를 이용하여 1번 게시판에 이벤트 참여글을 올리도록 세팅된 글 상세 화면을 여는 예시입니다.

[NNGSDKManager.shared presentFeedWritingWithBoardId:@1 title:@"[이벤트 참여] 스크린샷 이벤트" text:nil imageFilePath:nil];

12. dismiss 메서드

dismiss 메서드는 SDK 화면을 닫는 메서드입니다. 다음은 dismiss 메서드를 구현한 예입니다.

[NNGSDKManager.shared dismiss];

콜백 델리게이트

콜백 델리게이트를 설정해 플러그에서 발생하는 이벤트를 처리할 수 있습니다.

콜백 델리게이트 등록

콜백 델리게이트를 처리할 대상을 NNGSDKManager 클래스에 등록합니다.

@interface ViewController () <NNGSDKManagerDelegate>
...
NNGSDKManager.shared.delegate = self;
...

콜백 델리게이트 구현

1. nngSDKDidLoad 메서드

이 델리게이트는 SDK가 실행될 때마다 호출됩니다. 다음은 nngSDKDidLoad 메서드를 구현한 예입니다.

- (void)nngSDKDidLoad {
    NSLog(@"SDK is loaded.");
}

2. nngSDKDidUnload 메서드

이 델리게이트는 SDK가 종료될 때마다 호출됩니다. 다음은 nngSDKDidUnload 메서드를 구현한 예입니다.

- (void)nngSDKDidUnload {
    NSLog(@"SDK is unloaded.");
}

3. nngSDKDidReceiveInGameMenuCode: 메서드

이 델리게이트는 SDK에서 인게임 메뉴 코드를 받도록 지정한 이벤트마다 호출됩니다. 관리 페이지에서 배너 클릭 시에 인게임 메뉴 코드를 받도록 지정할 수 있으며 같은 페이지에서 메뉴 코드를 어떤 문자열로 할지 입력할 수 있습니다.

관리 페이지에서 입력한 문자열이 그대로 전달되기 때문에 이를 확인하여 이벤트가 발생했을 때 원하는 동작을 처리할 수 있습니다. 다음은 nngSDKDidReceiveInGameMenuCode: 메서드를 구현한 예입니다.

- (void)nngSDKDidReceiveInGameMenuCode:(NSString *)inGameMenuCode{
    [NNGSDKManager.shared dismiss];

    if ([inGameMenuCode isEqualToString:@"myMenuCode1"]) {
        // Do somthing for the in-game menu code "myMenuCode1"
    } else if ([inGameMenuCode isEqualToString:@"myMenuCode2"]) {
        // Do somthing for the in-game menu code "myMenuCode2"    
    }
}

nngSDKReceiveInGameMenuCode: 메서드는 SDK화면을 닫지 않습니다. 필요하다면 위의 예제 코드의 2번 줄에 기술된 것처럼 SDK 화면을 닫는 코드를 추가하십시오.

URL Schemes 값에는 에 애플리케이션을 등록할 때 입력한 값을 입력하면 됩니다.

에서 애플리케이션을 등록하고 받은 클라이언트 아이디와 클라이언트 시크릿, 개설한 라운지의 아이디를 NNGSDKManager에 등록합니다.

countryCode 프로퍼티는 두 개의 알파벳으로 이루어진 국가코드()입니다. 이를활용하면 코드 내에서 국가별 분기처리가 가능합니다.주요 국가코드는 다음과 같으며이외의 국가 코드는 를 참고하십시오.

앱 이름입니다. CFBundleName 값을 자동으로 가져옵니다. 자동 설정된 값이 에 등록한 앱 이름과 다를 경우 동일하도록 수정이 필요합니다. 수정은 초기화 과정과 같이 진행하는 것을 권장합니다.

앱 스킴입니다. CFBundleURLSchemes 값 중 첫 번째 값으로 자동 설정됩니다. 자동 설정된 값이 에 등록한 앱 스킴과 다를 경우 동일하도록 수정이 필요합니다. 수정은 초기화 과정과 같이 진행하는 것을 권장합니다.

인증 오류 발생 시 살펴봐야 할 디버그 용도의 문자열입니다. Client ID, Client Secret, 앱 이름, 앱 스킴이 포함되어 있습니다. 각 값이 두 번씩 출력되는데, 괄호 없이 출력되는 내용은 실제 인증에 사용된 값이며 괄호로 싸인 내용은 SDK에서 캐시하고 있는 값입니다. 실제 인증에 사용된 값, SDK에 캐시된 값, 그리고 에 등록된 값이 모두 일치해야 합니다.

파라미터로 쓰이는 게시판의 아이디 값은 웹에서 게시판에 진입했을 때의 URL에서 확인하실 수 있습니다. 아래 URL 중 board/ 다음에 나오는 값입니다.

네이버 아이디로 로그인 개발자 센터
URL Scheme
네이버 아이디로 로그인 개발자 센터
ISO 3166-1 alpha-2
링크
네이버 아이디로 로그인 개발자 센터
네이버 아이디로 로그인 개발자 센터
네이버 아이디로 로그인 개발자 센터
https://game.naver.com/lounge/naver_game_developer/board/1?order=rank
Release 1.3.8 · naver/navergame-sdk-iosGitHub
Logo