feat: ship ad-supported only — gate Remove Ads IAP behind kIapEnabled=false

The developer is an individual without a Korean business registration, so
the App Store / Play paid-apps (merchant) agreements can't be completed.
Hide the Remove Ads + Restore tiles and skip IAP init; ads always show.
AdMob revenue is independent of those agreements. Reversible: flip
kIapEnabled to re-enable once a merchant agreement exists. Bump to build 2;
drop the now-unused IAP review-screenshot generator.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-15 11:55:48 +09:00
parent e9d7f7cef6
commit 8b5bbd9531
12 changed files with 365 additions and 248 deletions
+2 -1
View File
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'core/feature_flags.dart';
import 'l10n/gen/app_localizations.dart';
import 'state/providers.dart';
import 'ui/screens/splash_screen.dart';
@@ -24,7 +25,7 @@ class _BlockSeasonsAppState extends ConsumerState<BlockSeasonsApp>
// Eagerly start the IAP service so its purchase stream is live for the
// whole session — restores and interrupted/deferred transactions are
// delivered (and completed) even if the player never opens Settings.
ref.read(iapServiceProvider);
if (kIapEnabled) ref.read(iapServiceProvider);
// Start background music for the current context (menu by default).
ref.read(musicServiceProvider).playKey(ref.read(activeThemeProvider).bgm);
});