chore: 플랫폼 설정 및 테스트 업데이트

- Android 광고 권한 추가
- macOS 플러그인 등록
- 테스트 mock 업데이트
This commit is contained in:
JiWoong Sul
2026-01-16 20:11:00 +09:00
parent 748160d543
commit 9f077d74a1
5 changed files with 33 additions and 4 deletions

View File

@@ -1,4 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- IAP 결제 권한 -->
<uses-permission android:name="com.android.vending.BILLING" />
<application
android:label="asciineverdie"
android:name="${applicationName}"
@@ -29,6 +32,10 @@
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<!-- AdMob App ID -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-6691216385521068~8216990571"/>
<!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
<meta-data

View File

@@ -6,13 +6,17 @@ import FlutterMacOS
import Foundation
import audio_session
import in_app_purchase_storekit
import just_audio
import path_provider_foundation
import shared_preferences_foundation
import webview_flutter_wkwebview
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin"))
InAppPurchasePlugin.register(with: registry.registrar(forPlugin: "InAppPurchasePlugin"))
JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin"))
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
WebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "WebViewFlutterPlugin"))
}

View File

@@ -2,6 +2,9 @@ PODS:
- audio_session (0.0.1):
- FlutterMacOS
- FlutterMacOS (1.0.0)
- in_app_purchase_storekit (0.0.1):
- Flutter
- FlutterMacOS
- just_audio (0.0.1):
- Flutter
- FlutterMacOS
@@ -11,32 +14,43 @@ PODS:
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- webview_flutter_wkwebview (0.0.1):
- Flutter
- FlutterMacOS
DEPENDENCIES:
- audio_session (from `Flutter/ephemeral/.symlinks/plugins/audio_session/macos`)
- FlutterMacOS (from `Flutter/ephemeral`)
- in_app_purchase_storekit (from `Flutter/ephemeral/.symlinks/plugins/in_app_purchase_storekit/darwin`)
- just_audio (from `Flutter/ephemeral/.symlinks/plugins/just_audio/darwin`)
- path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
- shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
- webview_flutter_wkwebview (from `Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin`)
EXTERNAL SOURCES:
audio_session:
:path: Flutter/ephemeral/.symlinks/plugins/audio_session/macos
FlutterMacOS:
:path: Flutter/ephemeral
in_app_purchase_storekit:
:path: Flutter/ephemeral/.symlinks/plugins/in_app_purchase_storekit/darwin
just_audio:
:path: Flutter/ephemeral/.symlinks/plugins/just_audio/darwin
path_provider_foundation:
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
shared_preferences_foundation:
:path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
webview_flutter_wkwebview:
:path: Flutter/ephemeral/.symlinks/plugins/webview_flutter_wkwebview/darwin
SPEC CHECKSUMS:
audio_session: 728ae3823d914f809c485d390274861a24b0904e
FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
in_app_purchase_storekit: 2342c0a5da86593124d08dd13d920f39a52b273a
just_audio: a42c63806f16995daf5b219ae1d679deb76e6a79
path_provider_foundation: 0b743cbb62d8e47eab856f09262bb8c1ddcfe6ba
shared_preferences_foundation: 5086985c1d43c5ba4d5e69a4e8083a389e2909e6
webview_flutter_wkwebview: 29eb20d43355b48fe7d07113835b9128f84e3af4
PODFILE CHECKSUM: 54d867c82ac51cbd61b565781b9fada492027009

View File

@@ -80,7 +80,7 @@ void main() {
test('loadAndStart surfaces save load errors', () {
fakeAsync((async) {
final saveManager = FakeSaveManager()
..onLoad = (_) => (const SaveOutcome.failure('boom'), null, false);
..onLoad = (_) => (const SaveOutcome.failure('boom'), null, false, null);
final controller = buildController(async, saveManager);
controller.loadAndStart(fileName: 'bad.pqf');

View File

@@ -4,6 +4,7 @@ import 'package:asciineverdie/src/core/engine/reward_service.dart';
import 'package:asciineverdie/src/core/model/combat_state.dart';
import 'package:asciineverdie/src/core/model/combat_stats.dart';
import 'package:asciineverdie/src/core/model/game_state.dart';
import 'package:asciineverdie/src/core/model/monetization_state.dart';
import 'package:asciineverdie/src/core/model/monster_combat_stats.dart';
import 'package:asciineverdie/src/core/model/pq_config.dart';
import 'package:asciineverdie/src/core/storage/save_manager.dart';
@@ -23,7 +24,7 @@ class FakeSaveManager implements SaveManager {
final List<GameState> savedStates = [];
/// 커스텀 로드 동작 설정
(SaveOutcome, GameState?, bool) Function(String?)? onLoad;
(SaveOutcome, GameState?, bool, MonetizationState?) Function(String?)? onLoad;
/// 저장 결과 설정 (기본: 성공)
SaveOutcome saveOutcome = const SaveOutcome.success();
@@ -33,17 +34,20 @@ class FakeSaveManager implements SaveManager {
GameState state, {
String? fileName,
bool cheatsEnabled = false,
MonetizationState? monetization,
}) async {
savedStates.add(state);
return saveOutcome;
}
@override
Future<(SaveOutcome, GameState?, bool)> loadState({String? fileName}) async {
Future<(SaveOutcome, GameState?, bool, MonetizationState?)> loadState({
String? fileName,
}) async {
if (onLoad != null) {
return onLoad!(fileName);
}
return (const SaveOutcome.success(), null, false);
return (const SaveOutcome.success(), null, false, null);
}
@override