Android에서 앱 내 구매 사용법

앱 내 구매를 통해 Android 게임에 부가 유료 콘텐츠를 제공하는 법입니다.

Windows
MacOS
Linux

환경설정

  1. Google Play 에서 앱 내 구매 구성법:

    Google Play 의 id 는 모두 소문자여야 하며, 블루프린트 구성 편의를 위해 iOS 와 Android 양쪽의 ID 가 일치되도록 하는 것이 좋습니다.

    image alt text

  2. 사용하시는 ID 와 아울러 아이템이 소모성인지 아닌지도 같이 기록해 둡니다.

  3. 블루프린트 프로젝트라면 별다른 작업은 필요 없습니다. 하지만 코드 프로젝트의 경우 온라인 서브시스템을 사용하도록 프로젝트 구성을 해 놓지 않은 경우, 프로젝트의 Build.cs 파일에 다음 블록을 추가합니다:

    if (Target.Platform == UnrealTargetPlatform.Android)
    {
        PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "OnlineSubsystem" });
        DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay");
    }
  4. 프로젝트 세팅 > 플랫폼 > Android 에서 Advanced APKPackaging 섹션을 찾습니다.

  5. ExtraPermissions 에 "com.android.vending.BILLING" 라는 엘리먼트를 추가합니다.

    image alt text

  6. [ProjectName]/Config/Android/AndroidEngine.ini 파일을 편집합니다:

    [OnlineSubsystem]
    DefaultPlatformService=GooglePlay
    
    [OnlineSubsystemGooglePlay.Store]
    bSupportsInAppPurchasing=True

구매 정보 읽기

image alt text

Read In-App Purchase Information 블루프린트 노드( 또는 그에 해당하는 C++ 함수 호출)를 통해 앱 내 구매 정보를 읽을 수 있습니다. 대부분의 온라인 서브시스템 함수와 마찬가지로, Player Controller 뿐만 아니라 제품 식별자도 입력으로 받습니다. 참고로 아래 Make In-App Purchase 는 하나의 식별자를 받는 반면, Read 는 배열 정보 처리가 가능합니다. 이 함수는 In App Purchase 구조체의 배열을 반환하고, 배열의 각 요소를 분리하여 이름, 설명, 가격 등 UI 에 표시하거나 게임플레이 로직에 사용할 데이터를 구합니다.

구매 완료

image alt text

앱 내 구매를 위해서는, Make an In-App Purchase 블루프린트 노드(, 또는 그에 해당하는 C++ 함수)를 사용합니다. Player Controller 뿐만 아니라 Product Request 구조체도 입력으로 받습니다. Product Request 는 단순히 iTunes Connect 나 Google Play Developer 콘솔에서의 제품 식별자(, 여기서는 match3theme_night)이며, 그 제품이 소모성인지 아닌지를 나타냅니다.

Make an In-App Purchase 노드는 latent (잠복성)이라, 구매의 성공 또는 실패 여부에 따라 게임플레이 동작이 갈리는 경우 두 개의 실행 핀을 사용해야 합니다. 온라인 서비스에서 응답을 받은 이후에만 실행될 것입니다. 이 노드는 (성공, 실패, 복구 등의) 구매 완료 상태와 In App Purchase Information 구조체의 자세한 내용도 같이 반환합니다.

이 함수는 잠복성이 아닌 (블루프린트 노드에 시계가 표시되지 않는) 버전이 있습니다. 그 노드의 실행 핀은 온라인 서비스에서의 응답을 기다리지 않으므로, 보통 잠복성 버전을 사용하게 됩니다.

테스팅

Android에서의 테스트는, Google Play 에 패키징된 APK 를 업로드하고, 올바른 테스팅 프로파일 구성도 해 줘야 합니다. 커스텀 키 스토어도 필요합니다.

유용한 링크

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback