iOS
Last updated
Last updated
최신 버전 다운로드
폴더 및 파일 이름
설명
Sample/NNG SDK Sample
Xcode용 샘플 프로젝트가 있는 폴더
sample/NNG SDK Sample/Libraries
iOS용 네이버 게임 SDK 라이브러리 파일이 있는 폴더
README.md
리드미 파일
CHANGELOG.md
버전 별 주요 변경점을 서술한 파일
네이버 게임 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 탭에서 확인할 수 있습니다.
URL Schemes 값에는 네이버 아이디로 로그인 개발자 센터에 애플리케이션을 등록할 때 입력한 URL Scheme 값을 입력하면 됩니다.
(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
네이버 아이디로 로그인 개발자 센터에서 애플리케이션을 등록하고 받은 클라이언트 아이디와 클라이언트 시크릿, 개설한 라운지의 아이디를 NNGSDKManager에 등록합니다.
Naver Game SDK의 뷰가 올라갈 부모 뷰 컨트롤러를 지정합니다.
NNGSDKManager 클래스 NNGSDKManager 클래스는 네이버 게임 SDK를 제어하는 클래스입니다. NNGSDKManager 클래스로 제어할 수 있는 기능에 관한 자세한 내용은 아래 내용을 참고하십시오.
네이버 로그인 후 처리를 위해 AppDelegate의 - application:openURL:options: 메소드에 아래 코드를 추가합니다.
countryCode 프로퍼티는 두 개의 알파벳으로 이루어진 국가코드(ISO 3166-1 alpha-2)입니다. 이를활용하면 코드 내에서 국가별 분기처리가 가능합니다.주요 국가코드는 다음과 같으며이외의 국가 코드는 링크를 참고하십시오.
국가코드
국가
CN
중국
JP
일본
KR
대한민국
TH
태국
US
미국
사용자가 화면을 캡처했을 때 글 쓰기 숏컷을 노출할지의 여부를 나타냅니다. 글쓰기 숏컷은 다음과 같은 화면입니다.
앱 이름입니다. CFBundleName 값을 자동으로 가져옵니다. 자동 설정된 값이 네이버 아이디로 로그인 개발자 센터에 등록한 앱 이름과 다를 경우 동일하도록 수정이 필요합니다. 수정은 초기화 과정과 같이 진행하는 것을 권장합니다.
앱 스킴입니다. CFBundleURLSchemes 값 중 첫 번째 값으로 자동 설정됩니다. 자동 설정된 값이 네이버 아이디로 로그인 개발자 센터에 등록한 앱 스킴과 다를 경우 동일하도록 수정이 필요합니다. 수정은 초기화 과정과 같이 진행하는 것을 권장합니다.
인증 오류 발생 시 살펴봐야 할 디버그 용도의 문자열입니다. Client ID, Client Secret, 앱 이름, 앱 스킴이 포함되어 있습니다. 각 값이 두 번씩 출력되는데, 괄호 없이 출력되는 내용은 실제 인증에 사용된 값이며 괄호로 싸인 내용은 SDK에서 캐시하고 있는 값입니다. 실제 인증에 사용된 값, SDK에 캐시된 값, 그리고 네이버 아이디로 로그인 개발자 센터에 등록된 값이 모두 일치해야 합니다.
네이버 아이디와 게임 아이디를 연동하기 위해 게임 아이디를 등록하는 메서드입니다. 다음은 registerMemberGameId: 메서드를 구현한 예입니다.
presentBannerViewController: 메서드는 배너 화면을 보여주는 메서드입니다. 다음은 presentBannerViewController: 메서드를 구현한 예입니다.
presentSorryViewController: 메서드는 긴급 공지 화면을 보여주는 메서드입니다. 게임 API통신이 실패한 경우 이 메서드를 사용하고 SDK의 진입점이 되는 다른 UI들을 숨기거나 비활성화하여 사용자가 SDK를 사용할 수 없도록 구현하는 것을 권장합니다. 다음은 presentSorryViewController: 메서드를 구현한 예입니다.
presentBoardViewControllerWith: 메서드는 게시판을 보여주는 메서드입니다. 다음은 presentBoardViewControllerWith: 메서드를 구현한 예입니다.
파라미터로 쓰이는 게시판의 아이디 값은 웹에서 게시판에 진입했을 때의 URL에서 확인하실 수 있습니다. 아래 URL 중 board/ 다음에 나오는 값입니다. https://game.naver.com/lounge/naver_game_developer/board/1?order=rank
기존에 SDK 관리페이지에서 게시판 등록 시 확인할 수 있는 아이디 값은 1.2.0 버전 이후에는 사용하지 않습니다.위에설명된 게시판 아이디 값으로의 변경이 필요합니다.
presentFeedViewControllerWith:scheduled: 메서드는 글 상세를 보여주는 메서드입니다. 글의 ID를 파라미터로 갖습니다. 다음은 presentFeedViewControllerWith:scheduled: 메서드를 사용하여 ID가 12345인 글의 상세화면을 여는 코드입니다.
scheduled 파라미터는 예약글 여부를 의미합니다. 예약글을 업로드 하면 글의 ID와는 다른, 예약글의 ID가 발급됩니다. 예약글의 ID가 123인 글의 상세화면을 여는 코드는 다음과 같습니다.
예약글 ID를 사용하여 글 상세를 여는 코드는 글이 등록되고 글 ID가 발급되더라도 정상적으로 동작하기 때문에 추후에도 코드에 수정이 필요 없습니다.
예약글을 등록하였으나 예약한 시간이 되지 않아 아직 노출되지 않은 글과 연결된 배너를 클릭한 경우 아무 동작도 발생하지 않습니다.
글 상세 화면을 여는 메서드입니다.파라미터로 받는 boardId, title, text, imageFilePath 값들은 모두 생략가능하며 생략하지 않은경우에는 해당 값들이 입력된 상태로 글 쓰기 화면에 진입합니다.다음은 presentFeedWritingWithBoardId:title:text:imageFilePath: 메서드를 이용하여 1번 게시판에 이벤트 참여글을 올리도록 세팅된 글 상세 화면을 여는 예시입니다.
dismiss 메서드는 SDK 화면을 닫는 메서드입니다. 다음은 dismiss 메서드를 구현한 예입니다.
콜백 델리게이트를 설정해 플러그에서 발생하는 이벤트를 처리할 수 있습니다.
콜백 델리게이트를 처리할 대상을 NNGSDKManager 클래스에 등록합니다.
이 델리게이트는 SDK가 실행될 때마다 호출됩니다. 다음은 nngSDKDidLoad 메서드를 구현한 예입니다.
이 델리게이트는 SDK가 종료될 때마다 호출됩니다. 다음은 nngSDKDidUnload 메서드를 구현한 예입니다.
이 델리게이트는 SDK에서 인게임 메뉴 코드를 받도록 지정한 이벤트마다 호출됩니다. 관리 페이지에서 배너 클릭 시에 인게임 메뉴 코드를 받도록 지정할 수 있으며 같은 페이지에서 메뉴 코드를 어떤 문자열로 할지 입력할 수 있습니다.
관리 페이지에서 입력한 문자열이 그대로 전달되기 때문에 이를 확인하여 이벤트가 발생했을 때 원하는 동작을 처리할 수 있습니다. 다음은 nngSDKDidReceiveInGameMenuCode: 메서드를 구현한 예입니다.
nngSDKReceiveInGameMenuCode: 메서드는 SDK화면을 닫지 않습니다. 필요하다면 위의 예제 코드의 2번 줄에 기술된 것처럼 SDK 화면을 닫는 코드를 추가하십시오.