feat: add IS_BUSINESS_APP build flag for consumer/business APK split
消費者向けビルド(IS_BUSINESS_APP=false)では店舗タブを完全非表示にする。 build_consumer.sh / build_business.sh でワンコマンドビルド可能。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9f63578ca7
commit
c0a23d2afb
|
|
@ -0,0 +1,66 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# ============================================================================
|
||||||
|
# Ponshu Room Lite - 店舗向けAPKビルドスクリプト
|
||||||
|
# IS_BUSINESS_APP=true / IS_PRO_VERSION=false
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
|
||||||
|
OUTPUT_DIR="build/apk_releases/$TIMESTAMP"
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
# APIキー (.env から読み込む)
|
||||||
|
if [ -f "$(dirname "$0")/.env" ]; then
|
||||||
|
export $(grep -v '^#' "$(dirname "$0")/.env" | xargs)
|
||||||
|
fi
|
||||||
|
MAITA_KEY="${MAITA_API_KEY:?MAITA_API_KEY is not set in .env}"
|
||||||
|
EIJI_KEY="${EIJI_API_KEY:?EIJI_API_KEY is not set in .env}"
|
||||||
|
|
||||||
|
# build.gradle.kts バックアップ
|
||||||
|
GRADLE_FILE="android/app/build.gradle.kts"
|
||||||
|
BACKUP_FILE="android/app/build.gradle.kts.backup"
|
||||||
|
cp "$GRADLE_FILE" "$BACKUP_FILE"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
if [ -f "$BACKUP_FILE" ]; then
|
||||||
|
cp "$BACKUP_FILE" "$GRADLE_FILE"
|
||||||
|
rm "$BACKUP_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
echo "============================================================================"
|
||||||
|
echo "Ponshu Room Lite - Business APK Build"
|
||||||
|
echo "============================================================================"
|
||||||
|
echo "Output: $OUTPUT_DIR"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
sed -i 's/applicationId = "com.posimai.ponshu_room"/applicationId = "com.posimai.ponshu_room_lite"/' "$GRADLE_FILE"
|
||||||
|
|
||||||
|
echo "[1/2] Building Maita Business..."
|
||||||
|
flutter build apk --release \
|
||||||
|
--dart-define=GEMINI_API_KEY=$MAITA_KEY \
|
||||||
|
--dart-define=IS_PRO_VERSION=false \
|
||||||
|
--dart-define=IS_BUSINESS_APP=true \
|
||||||
|
--dart-define=USE_PROXY=false
|
||||||
|
|
||||||
|
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_business_maita.apk"
|
||||||
|
echo "Saved: $OUTPUT_DIR/ponshu_room_business_maita.apk"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "[2/2] Building Eiji Business..."
|
||||||
|
flutter build apk --release \
|
||||||
|
--dart-define=GEMINI_API_KEY=$EIJI_KEY \
|
||||||
|
--dart-define=IS_PRO_VERSION=false \
|
||||||
|
--dart-define=IS_BUSINESS_APP=true \
|
||||||
|
--dart-define=USE_PROXY=false
|
||||||
|
|
||||||
|
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_business_eiji.apk"
|
||||||
|
echo "Saved: $OUTPUT_DIR/ponshu_room_business_eiji.apk"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "============================================================================"
|
||||||
|
echo "Business build completed!"
|
||||||
|
echo "============================================================================"
|
||||||
|
ls -lh "$OUTPUT_DIR"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# ============================================================================
|
||||||
|
# Ponshu Room Lite - 消費者向けAPKビルドスクリプト
|
||||||
|
# IS_BUSINESS_APP=false / IS_PRO_VERSION=false
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
TIMESTAMP=$(date +%Y-%m-%d_%H-%M-%S)
|
||||||
|
OUTPUT_DIR="build/apk_releases/$TIMESTAMP"
|
||||||
|
mkdir -p "$OUTPUT_DIR"
|
||||||
|
|
||||||
|
# APIキー (.env から読み込む)
|
||||||
|
if [ -f "$(dirname "$0")/.env" ]; then
|
||||||
|
export $(grep -v '^#' "$(dirname "$0")/.env" | xargs)
|
||||||
|
fi
|
||||||
|
MAITA_KEY="${MAITA_API_KEY:?MAITA_API_KEY is not set in .env}"
|
||||||
|
EIJI_KEY="${EIJI_API_KEY:?EIJI_API_KEY is not set in .env}"
|
||||||
|
|
||||||
|
# build.gradle.kts バックアップ
|
||||||
|
GRADLE_FILE="android/app/build.gradle.kts"
|
||||||
|
BACKUP_FILE="android/app/build.gradle.kts.backup"
|
||||||
|
cp "$GRADLE_FILE" "$BACKUP_FILE"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
if [ -f "$BACKUP_FILE" ]; then
|
||||||
|
cp "$BACKUP_FILE" "$GRADLE_FILE"
|
||||||
|
rm "$BACKUP_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
echo "============================================================================"
|
||||||
|
echo "Ponshu Room Lite - Consumer APK Build"
|
||||||
|
echo "============================================================================"
|
||||||
|
echo "Output: $OUTPUT_DIR"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
sed -i 's/applicationId = "com.posimai.ponshu_room"/applicationId = "com.posimai.ponshu_room_lite"/' "$GRADLE_FILE"
|
||||||
|
|
||||||
|
echo "[1/2] Building Maita Consumer..."
|
||||||
|
flutter build apk --release \
|
||||||
|
--dart-define=GEMINI_API_KEY=$MAITA_KEY \
|
||||||
|
--dart-define=IS_PRO_VERSION=false \
|
||||||
|
--dart-define=IS_BUSINESS_APP=false \
|
||||||
|
--dart-define=USE_PROXY=false
|
||||||
|
|
||||||
|
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_consumer_maita.apk"
|
||||||
|
echo "Saved: $OUTPUT_DIR/ponshu_room_consumer_maita.apk"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "[2/2] Building Eiji Consumer..."
|
||||||
|
flutter build apk --release \
|
||||||
|
--dart-define=GEMINI_API_KEY=$EIJI_KEY \
|
||||||
|
--dart-define=IS_PRO_VERSION=false \
|
||||||
|
--dart-define=IS_BUSINESS_APP=false \
|
||||||
|
--dart-define=USE_PROXY=false
|
||||||
|
|
||||||
|
cp build/app/outputs/flutter-apk/app-release.apk "$OUTPUT_DIR/ponshu_room_consumer_eiji.apk"
|
||||||
|
echo "Saved: $OUTPUT_DIR/ponshu_room_consumer_eiji.apk"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "============================================================================"
|
||||||
|
echo "Consumer build completed!"
|
||||||
|
echo "============================================================================"
|
||||||
|
ls -lh "$OUTPUT_DIR"
|
||||||
|
|
@ -18,6 +18,15 @@ import 'services/migration_service.dart';
|
||||||
/// デフォルトはfalse(Lite版) ※ponshu_room_liteディレクトリのため
|
/// デフォルトはfalse(Lite版) ※ponshu_room_liteディレクトリのため
|
||||||
const bool isProVersion = bool.fromEnvironment('IS_PRO_VERSION', defaultValue: false);
|
const bool isProVersion = bool.fromEnvironment('IS_PRO_VERSION', defaultValue: false);
|
||||||
|
|
||||||
|
/// 店舗向けビルドかどうかを判定するビルド時フラグ
|
||||||
|
///
|
||||||
|
/// ビルドコマンド:
|
||||||
|
/// - 消費者向け: flutter build apk --release --dart-define=IS_BUSINESS_APP=false
|
||||||
|
/// - 店舗向け: flutter build apk --release --dart-define=IS_BUSINESS_APP=true
|
||||||
|
///
|
||||||
|
/// デフォルトはfalse(消費者向け)
|
||||||
|
const bool isBusinessApp = bool.fromEnvironment('IS_BUSINESS_APP', defaultValue: false);
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
WidgetsFlutterBinding.ensureInitialized();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,8 @@ class _MainScreenState extends ConsumerState<MainScreen> {
|
||||||
});
|
});
|
||||||
|
|
||||||
final userProfile = ref.watch(userProfileProvider);
|
final userProfile = ref.watch(userProfileProvider);
|
||||||
final isBusiness = userProfile.isBusinessMode;
|
// isBusinessApp=false(消費者向けビルド)では店舗モードを完全に無効化
|
||||||
|
final isBusiness = isBusinessApp && userProfile.isBusinessMode;
|
||||||
final t = Translations(userProfile.locale); // Translation helper
|
final t = Translations(userProfile.locale); // Translation helper
|
||||||
|
|
||||||
// Define Screens for each mode
|
// Define Screens for each mode
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue