Flutter In App Purchase + RevenueCat 설정 절차 (Android 및 iOS)

ENOOSOFT·2024년 8월 24일

Android 설정 절차

1. Google Play / GCP 설정

  • GCP API 활성화
    • Google Play Android Developer API
    • Cloud Pub/Sub API
  • IAM 및 관리자 > 서비스 계정 > 서비스계정 생성, 권한 부여
    • 게시/구독 관리자
    • 모니터링 뷰어
  • 새로운 키 생성 → credential json 다운로드 ( 나중에 revenuecat 에 업로드 한다 )
  • Google Play Console > 사용자 및 권한에 GCP서비스 계정(email) 초대하고 아래권한 부여
    • 앱 정보 보기 및 보고서 일괄 다운로드(읽기 전용)
    • 재무 데이터, 주문, 취소 설문조사 응답 보기
    • 주문 및 구독 관리
  • Google Play Console > 수익창출 > 제품을 생성하고 제품ID, 이름, 가격 등을 설정

2. RevenueCat 설정

  • '새 프로젝트' 생성 후 Android 앱을 추가
  • Google Play 연동을 위해 서비스 계정 키 credential json 를 업로드
  • Product catalog > 제품을 생성하고 Google Play의 제품ID 와 매핑 ( attach )
    • Product 생성
    • Entitlements 생성
    • Offerings 생성

3. Android Studio 설정

  • 안드로이드 앱 설정
    • AndroidManifest.xml
          <uses-permission android:name="com.android.vending.BILLING" />
         <application
              android:label="...
  • app/build.gradle dependency 추가
        implementation 'com.android.billingclient:billing:7.0.0'

3. Flutter 앱 코드 설정

  • RevenueCat SDK를 프로젝트에 추가합니다.
    • flutter pub add purchases_flutter
  • 앱 시작 시 RevenueCat을 초기화합니다.
      Future<void> main() async { 
      **storeConfig();**
      WidgetsFlutterBinding.ensureInitialized();
      **configureIapSDK();**
  • 구매 페이지 설정 ( 활성화 여부에 따른 설정)
      
      void initState() {
        super.initState();
        WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
          initPlatformState(refresh: refresh);
        });
      }
  • 구매버튼 설정
    RainbowHeartIcon(
        isActivated: iapData.entitlementIsActive,
        onTap: () {
          if (iapData.entitlementIsActive) {
            thankYouToast();
          } else {
            showOfferings(
              context: context,
              theme: theme,
              loading: loading,
              refresh: refresh,
            );
          }
        },
      ),

iOS 설정 절차

1. App Store Connect 설정

  • App Store Connect > 앱선택 > 수익화 > 앱 내 구입
  • 인앱 상품을 생성하고 제품 ID, 이름, 가격 등을 설정합니다.
  • 인앱상품에 심사정보(스크린샷 및 심사용 추가정보)를 반드시 입력해야 함. 프로모션이미지는 굳이 넣지 않음.
  • 구독의 경우 App Store 현지화 구독그룹명 입력
  • 구독의 경우 앱 설명 맨 뒤에 “앱 이용 약관: https://www.apple.com/legal/internet-services/itunes/dev/stdeula” 등록
  • 앱을 심사에 제출할때 인앱상품을 포함(binding) 하여 배포해야 함
  • 최상위메뉴 > 사용자 및 액세스 > 통합 탭 > 앱 내 구입 메뉴에서 키를 생성한다( 나중에 RevenueCat 에 업로드)

2. Developer apple account 설정

  • Identifiers 메뉴에서 앱의 Capabilities 에 In-App Purchase 가 선택돼 있는지 확인
  • Certificates 메뉴에서 인증서가 유효한지 확인 braries, and Embedded Content 에서 Apple SDK StoreKit.framework 를 포함

3. RevenueCat 설정

  • 프로젝트 선택 후 iOS 앱을 추가
  • Apple Store 연동을 위해 Apple Store Connenct 에서 만든 In-App purchase 키 .p8 를 업로드
  • 이하 상품 생성은 안드로이드와 동일

4. Xcode 설정

  • Signing & Capabilities 메뉴에서 Team, Bundle Identifier 가 developer account 설정과 일치하는지 확인
  • 모두 확인했는데도 Signing 에러가 계속 되면 버전을 올려본다.
  • Capability 를 클릭하여 In-App Purchase 를 선택
  • Target Runner > General > Frameworks, Libraries, and Embedded Content 에서 Apple SDK StoreKit.framework 를 포함

5. Flutter 앱 코드 설정

  • 이하 flutter 앱 코드는 안드로이드의 설명과 동일

공통 사항

  • 테스트 계정을 설정하여 인앱 구매를 테스트
  • 구매 확인 및 복원 기능을 구현
profile
Tiny coder

0개의 댓글