대체 스토어 결제 설정

nowSDK는 payments 모듈을 사용하여 now.gg 지원 스토어와 대체 스토어에서 결제를 지원합니다. 이 문서에서는 대체 스토어 결제 설정에 필요한 단계를 설명합니다.

필수 조건

대체 스토어 결제를 활성화하려면 다음 요구 사항을 충족해야 합니다:

  • 결제 모듈 통합 – 결제 모듈이 앱에 정상적으로 통합되어 있는지 확인하세요.
  • nowStudio 설정

1. 지원 스토어

현재 다음 스토어가 지원됩니다:

  • now.gg 기반 스토어
    • 클라우드 스토어
    • BlueStacks 스토어
  • 기타 스토어
    • 삼성 Galaxy 스토어
    • 샤오미 GetApps
    • ONE Store
    • 아마존 앱스토어
    • 화웨이 AppGallery (곧 지원 예정)

2. 빌드 구성

nowSDK 결제 모듈을 통합한 후, 최종 APK를 제공하기 전에 아래 변경 사항이 적용되었는지 확인하세요.

2.1 build.gradle에 의존성 추가

아래 의존성을 모듈/앱 수준의 build.gradle 파일에 추가하세요:

참고: 네이티브 Android 앱에만 필요합니다.

<!-- 샤오미 GetApps -->
 implementation "com.xiaomi.billingclient:billing:1.1.3"

<!-- ONE Store -->
 implementation "com.onestorecorp.sdk:sdk-iap:21.01.00"


2.2 저장소 추가/업데이트

루트 수준build.gradle 또는 settings.gradle에 아래 저장소를 포함하세요:

 <!-- ONE Store -->
  pluginManagement {
     repositories {
         google {
             content {
                 includeGroupByRegex("com\\.android.*")
                 includeGroupByRegex("com\\.google.*")
                 includeGroupByRegex("androidx.*")
             }
         }
         maven { url "https://jitpack.io" }
         maven { url = uri("https://repo.onestore.net/repository/onestore-sdk-public") }
         mavenCentral()
         gradlePluginPortal()
     }
 }
 dependencyResolutionManagement {
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
         google()
         mavenCentral()
         maven { url "https://jitpack.io" }
         maven { url = uri("https://repo.onestore.net/repository/onestore-sdk-public") }
     }
 }


2.3 AndroidManifest.xml 업데이트

앱의 AndroidManifest.xml 파일 내에 아래 항목을 추가하세요:

<!-- 삼성 Galaxy 스토어 -->
 <uses-permission android:name="com.samsung.android.iap.permission.BILLING"/>
 <uses-permission android:name="android.permission.INTERNET"/>

 <!-- ONE Store -->
 <queries>
   <intent>
     <action android:name="com.onestore.ipc.iap.IapService.ACTION" />
   </intent>
   <intent>
     <action android:name="android.intent.action.VIEW" />
     <data android:scheme="onestore" />
   </intent>
 </queries>

 <!-- 아마존 앱스토어 -->
 <queries>
   <package android:name="com.amazon.sdktestclient" />
   <package android:name="com.amazon.venezia" />
 </queries>


2.4 삼성 라이브러리 추가

참고: Samsung Galaxy Store네이티브 Android 앱에만 필요합니다.

추가 방법:

  1. nowSDK 패키지/Modules/Payments 디렉토리에서 samsung_iap-release.aar 파일을 찾으세요.
  2. 제공된 .aar 파일을 프로젝트의 libs 디렉토리에 추가하세요.


2.5 ProGuard 규칙 추가( ProGuard/R8 사용 시에만 )

앱에서 ProGuard/R8을 활성화한 경우, 아래 규칙을 ProGuard 설정에 추가하세요:

중요

  • 앱에서 ProGuard/R8을 활성화한 경우에만 필요합니다.
 <!-- ONE Store -->
  -keep class com.gaa.sdk.base.** { *; }
  -keep class com.gaa.sdk.auth.** { *; }
  -keep class com.gaa.sdk.iap.** { *; }
  -keep class com.onestore.extern.licensing.** { *; }

3. 추가 요구 사항

아래는 스토어별 추가 요구 사항입니다.

3.1 샤오미 GetApps

3.1.1 서명된 빈 APK

샤오미는 초기 제출 시 앱의 서명 인증서를 검증하기 위해 서명된 빈 APK를 요구합니다. 이 단계는 서명 불일치를 방지하고, 향후 앱 업데이트의 무결성과 신뢰성을 보장합니다.

진행 방법:

1. 빈 APK 다운로드

2. Keystore로 생성 및 서명:

keytool -genkey -v -keystore <your-release-key.keystore> -alias <your-key-alias> -keyalg RSA -keysize 2048 -validity 10000

 jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore <your-release-key.keystore> <your-app.apk> <your-key-alias>

3. 서명된 APK를 dev-support@now.ggXiaomi – Signed Empty APK 제목과 함께 이메일로 전송합니다.

참고: 앱이 Google Play에 출시된 경우, 동일한 keystore를 사용하여 서명하는 것이 권장됩니다.


3.1.2 _mitest 버전명이 포함된 APK

샤오미는 최초 제출 시 APK 버전명에 _mitest 접미사가 포함된 빌드를 요구합니다. 이는 Xiaomi GetApps Store의 IAP(인앱결제) 테스트를 위한 일회성 요구사항입니다.
참고:

  • 첫 제출에만 해당되며, 이후 업데이트에는 필요하지 않습니다.
  • 패키지명 변경은 필요하지 않습니다.

진행 방법:

1. 버전명 설정: APK 버전명에 _mitest를 포함합니다 (예: 1.0.0_mitest).
2. 빌드 및 서명: 업데이트된 버전명으로 APK를 빌드하고 평소처럼 서명합니다.

3. APK 이메일 전송 dev-support@now.ggXiaomi – _mitest version 제목과 함께 전송합니다.



3.2 ONE Store – 글로벌 배포 활성화

글로벌(한국 외) 배포를 원할 경우 ONE Store는 서명된 output.zip 파일을 요구합니다. 이 파일은 암호화된 앱 서명키를 포함하고 있어 ONE Store가 앱의 신뢰성과 정품 여부를 글로벌 배포 시 안전하게 검증할 수 있습니다.

워크플로우

  • 앱 전용 암호화 키를 제공해 드립니다. 이 키를 사용해 개인 키를 내보내고 암호화하여 output.zip을 생성하세요.

추가 방법:

1. PEPK 도구 다운로드 (Google 제공 또는 미러 )

2. output.zip 생성:

java -jar pepk.jar --keystore=<your-keystore-file.keystore> --alias=<your-alias> --output=output.zip --include-cert --encryptionkey=<your-encryption-key>

3. output.zipdev-support@now.ggONE Store – output.zip 제목으로 이메일로 제출하세요.

참고: PEPK 도구는 Google이 개발 및 제공하며, 앱 서명키를 안전하게 암호화하기 위한 도구입니다. 적절한 표기가 없는 무단 수정 또는 재배포는 금지됩니다.



3.3 아마존 앱스토어 – PEM 파일

아마존 앱스토어는 앱의 공개키를 포함한 PEM 파일을 요구합니다. 이를 통해 인앱 결제의 안전한 통신 및 구매 검증이 가능해지며, 사기 방지 및 거래의 무결성을 보장할 수 있습니다.

추가 방법:

  • dev-support@now.gg로 연락해 앱의 PEM 파일을 요청하세요.
  • app/src/main/assets(네이티브 Android) 또는 Assets/StreamingAssets(Unity)에 파일을 넣으세요.
×
클립보드에 복사된 텍스트
copyLinkText
질문이 있으신가요? 다음 주소로 문의하세요. dev-support@now.gg