revup_flutter_plugin 1.2.0
revup_flutter_plugin: ^1.2.0 copied to clipboard
We provide a plugin so that you can integrate revup while developing with Flutter.
1.2.0 #
공통
- [변경] 최소 Flutter 3.44 / Dart 3.12 — 플러그인을 built-in Kotlin 으로 옮기면서 Flutter 가이드가 요구하는 최소 버전이다. Flutter 3.44 미만인 앱에서는 pub 이 1.1.0 을 고른다(빌드는 깨지지 않는다). Xcode 27 대응이 들어간 Flutter 는 3.44 패치 라인과 3.47 이상이다
Android
- built-in Kotlin 으로 이전 — 플러그인이
kotlin-android를 직접 적용하지 않는다.kotlinOptions→kotlin { compilerOptions }. Flutter 3.47 의 "plugins that apply Kotlin Gradle Plugin (KGP)" 경고가 사라지고, 이후 Flutter 에서 빌드가 막히지 않는다 - 플러그인 Java/Kotlin 바이트코드 타깃 1.8 → 17 (Flutter 플러그인 템플릿과 같음)
- 네이티브 SDK 변경 없음 (
revupCore/revupAndroid/revupLuckyEvent1.0.9) - 확인한 앱 구성 (Flutter 3.47.7): AGP 9.1.1 built-in Kotlin 켬 · AGP 9.1.0 built-in Kotlin 끔(템플릿 기본) · AGP 8.11.1. debug / R8 release 빌드, 실기기에서 시작·채널 호출 정상
iOS
- 네이티브 SDK 변경 없음 (
REVUP/Core ~> 1.1.11)
문서
- README — 최소 Flutter 3.44 명시, Android 최소 API 21 → 24 정정(1.0.5 부터 24), 설치 예시 버전 정정
- README — Maven 저장소를
https://repository.tnkad.net/repository/public/하나로 안내 (Android 공개 가이드와 같음). 예전 목록은 PubMatic 저장소가 빠져 MAX 연동 시com.pubmatic.sdk:openwrap을 찾지 못했다 - README —
build.gradle.kts(Kotlin DSL) 프로젝트용 저장소·manifestPlaceholders·의존성 예시 추가 - README — Apple Silicon 시뮬레이터 빌드 실패 대응
post_install추가. BigoADS(REVUP/MaxMediaBigo)의 옛 Xcode 12 설정과 IronSourceAdQualitySDK 의arm64e를 Flutter 가 "arm64 미지원"으로 오판해 앱에서 arm64 를 빼던 문제
Example
- Android: AGP
8.9.3→9.1.1, Gradle8.14→9.3.1, Kotlin2.1.21→2.3.20, built-in Kotlin 사용(android.builtInKotlin=true), Maven 저장소 하나로 정리. Android API 37 을 지원하는 것은 AGP 9.1.1 부터다 - iOS: Podfile 에 위 Apple Silicon 시뮬레이터 대응 추가
- Flutter 3.47 마이그레이터 반영 —
android.newDsl=false,analyzer.exclude,AppFrameworkInfo.plist의MinimumOSVersion제거
1.1.0 #
iOS
- 네이티브 SDK 를
REVUP 1.1.11로 갱신 — podspecREVUP/Core제약을'~> 1.1.9'→'~> 1.1.11' - [변경] iOS 최소 지원 버전 13.0 → 15.0 (Xcode 27 대응) — podspec
s.platform을'15.0'으로 상향. 앱의 iOS deployment target 이 14.x 이하면 이 릴리스를 적용할 수 없다. REVUP iOS SDK 자체는 1.1.11 에서도 13.0 을 지원하므로, 15.0 은 플러그인 쪽 요구사항이다 - README / 마이그레이션 문서의 Podfile 예시를
1.1.11+ 15.0 + Xcode 27 용post_install로 갱신
Android
- 변경 없음 (
revupCore/revupAndroid/revupLuckyEvent1.0.9유지)
1.0.5 #
Android
- 네이티브 SDK 를
1.0.9으로 갱신 (revupCore / revupAndroid / revupLuckyEvent) - [변경] 플러그인
minSdkVersion21 → 24 — 네이티브 SDK1.0.9가 minSdk 24 를 요구한다. Meta(FAN) 비더 어댑터와play-services-ads 25.5.0이 직접 원인이다. 앱의minSdkVersion이 23 이하면 이 버전을 적용할 수 없다 - 네이티브
1.0.9가 가져오는 변경 (상세는 Android SDK 릴리즈 노트 참조)- SDK 가 넣던 과도한 ProGuard keep 규칙 제거 — Play Console 의 'DEX 코드 최적화' 점수 개선.
adapter.vungle이com.google.android.gms.**전체를 keep 하던 규칙이 가장 컸다 - AGP 9 R8 full mode 릴리즈 빌드가 시작 직후 죽던 문제 해결
- 네트워크 SDK 최신화 — MAX 13.6.4 / admob 25.5.0 / chartboost 9.14.1 / pangle 8.3.0.4 / vungle 7.7.8
- SDK 가 넣던 과도한 ProGuard keep 규칙 제거 — Play Console 의 'DEX 코드 최적화' 점수 개선.
- 예제 앱의 BOM 을
1.0.9로 갱신
iOS
- 변경 없음 (
REVUP/Core ~> 1.1.9유지)
1.0.4 #
Android
- 네이티브 SDK 를
1.0.6으로 갱신 (revupCore / revupAndroid / revupLuckyEvent) - [추가] 복권 화면 테마 옵션 —
setLuckyEventTheme(RevupLuckyEventTheme)RevupLuckyEventTheme.light/dark/system중 선택- 네이티브 SDK 의
RevupLuckyEvent.setEventTheme()로 전달된다
iOS
- 네이티브 SDK 를
REVUP 1.1.9로 갱신 - [변경] podspec 의
REVUP/Core제약을 하드핀에서 범위로 완화 —'1.1.5'→'~> 1.1.9'REVUP의 각 subspec 은 자기 버전과 동일한REVUP/Core (= X)를 요구한다. 코어를 한 버전에 못박으면 매체가REVUP/LuckyEvent등 다른 subspec 만 상위 패치로 올릴 때 CocoaPods 해석이 실패했다.- 하한
1.1.9— LuckyEvent 테마가 들어간 버전이자 결함이 있는1.1.1/1.1.2를 배제하는 선. 상한은1.2.0미만이다.
- [추가] 복권 화면 테마 옵션 — Android 와 동일한
setLuckyEventTheme사용- 네이티브 SDK 의
setLuckyEventUserInterfaceStyle:로 전달된다 system은UIUserInterfaceStyleUnspecified에 대응한다
- 네이티브 SDK 의
공통
// 단말의 다크모드 설정을 따른다 (기본값)
await revup.setLuckyEventTheme(RevupLuckyEventTheme.system);
// 단말 설정과 무관하게 항상 라이트로 고정
await revup.setLuckyEventTheme(RevupLuckyEventTheme.light);
await revup.showLuckyEvent();
- 적용 범위는 네이티브 영역이다 — 화면 배경, 상태바 아이콘 대비, SDK 안내 팝업. 복권 웹 콘텐츠는 웹이 정한 대로 표시된다.
showLuckyEvent()보다 먼저 호출해야 한다. 이미 떠 있는 화면에는 반영되지 않는다.
동작 변경: 기본값이
system이므로, 아무것도 설정하지 않으면 다크모드 단말에서 복권 화면의 네이티브 영역이 다크로 표시된다. 기존처럼 항상 라이트로 두려면setLuckyEventTheme(RevupLuckyEventTheme.light)를 명시해야 한다.
1.0.3 #
iOS
- 네이티브 SDK 를
REVUP 1.1.3→1.1.5로 갱신- podspec 자기정합성 확인 (subspec 26종의 내부 의존성이 모두 1.1.5 로 정렬)
- 최소 배포 타겟 iOS 13.0 유지
pod install2회 연속 통과 확인 — 1.1.1 / 1.1.2 에서 발생하던Podfile.lock모순 기록 문제가 재발하지 않는다
1.0.2 #
Android
- 네이티브 SDK 를 1.0.3 으로 갱신 (revupCore / revupAndroid / revupLuckyEvent)
- [수정] 복권 화면에서 다른 복권 이벤트를 열 수 없던 문제
TnkEventActivity는launchMode="singleTop"인데 네이티브 SDK 가onNewIntent()를 처리하지 않아, 복권 화면이 이미 떠 있는 상태에서showLuckyEvent를 다시 호출하면 기존 인스턴스로 흡수되고 화면이 이전 이벤트 그대로 남았다.- SDK 1.0.3 에서
onNewIntent()가 새 URL 을 다시 로드하도록 수정됐다. - 이에 맞춰
showLuckyEvent가TnkEventActivity를 두 번 실행하던 중복 호출(TnkEventBuilder.show()+ 직접startActivity())을 제거했다.
이 수정은 네이티브 SDK 1.0.3 이 필요하다. 매체가 revupCore/revupAndroid/ revupLuckyEvent 를 직접 선언해 하위 버전으로 고정하고 있다면 함께 올려야 한다.
1.0.1 #
Android
- [수정] 신규 프로젝트에서 앱 빌드가 실패하던 문제
RevupFlutterPlugin이RevupInitializeListener,RewardedVideoAdListener,InterstitialAdListener,RewardedInterstitialAdShowListener를 public 시그니처에 구현하는데, 네이티브 SDK 의존성이implementation이라 앱 모듈로 전파되지 않았다.- 그 결과 앱이
GeneratedPluginRegistrant를 컴파일할 때 실패했다.GeneratedPluginRegistrant.java:19: error: cannot access RevupInitializeListener - 우회하려면 앱의
build.gradle에 revupCore/revupAndroid/revupLuckyEvent 를 직접 선언해야 했다.api로 변경해 그럴 필요가 없어졌다.
1.0.0 #
Revup Flutter Plugin 최초 공개 배포.
지원 기능
- Initialize / 사용자 정보 설정 (
setUserId,setUserIdChild) - RewardedVideo — load / isLoaded / show, 보상 콜백
- Interstitial — load / isLoaded / show
- RewardedInterstitial — preload / preloadAll / load / show / showWithPopup, 유닛 상태 조회
- LuckyEvent(복권) —
setLuckyEventAppId/showLuckyEvent, WebView scheme 콜백 - Adiscope 호환 레이어 (
package:revup_flutter_plugin/adiscope_compat.dart)- 기존
adiscope_flutter_plugin사용 매체가 import 한 줄만 바꿔 전환할 수 있다. - 자세한 내용은 마이그레이션 가이드 참고.
- 기존
Offerwall 은 제공하지 않는다.
네이티브 SDK
| 플랫폼 | 버전 |
|---|---|
| Android | revup-bom 1.0.2 (revupCore / revupAndroid / revupLuckyEvent 1.0.2) |
| iOS | REVUP 1.1.3 |
요구 사항
- Android minSdk 23
- iOS 13.0+
- Android SDK 는 Maven Central 이 아닌 자체 Maven 저장소에 배포된다. 연동 시 저장소 추가가 필요하다 (README 참고).