카테고리 없음
플러터 새 프로젝트 세팅 스크립트 코드
순코딩
2025. 10. 29. 11:51
@echo off
chcp 65001 >nul
echo ============================================
echo Flutter 새 프로젝트 세팅 스크립트
echo ============================================
echo.
REM 1단계: 기존 키스토어 파일 삭제
echo [1/5] 기존 키스토어 파일 삭제 중...
if exist "android\app\upload-keystore.jks" (
del /f /q "android\app\upload-keystore.jks"
echo ✓ upload-keystore.jks 삭제 완료
) else (
echo - upload-keystore.jks 파일이 없습니다
)
if exist "android\key.properties" (
del /f /q "android\key.properties"
echo ✓ key.properties 삭제 완료
) else (
echo - key.properties 파일이 없습니다
)
echo.
REM 2단계: 사용자 입력 받기
echo [2/5] 새 프로젝트 정보 입력
echo.
set /p APP_NAME="앱 이름을 입력하세요 (예: 해리포터 마법 주문): "
set /p APP_ID="Application ID를 입력하세요 (예: com.company.appname): "
set /p PROJECT_NAME="프로젝트 코드명을 입력하세요 (예: harrypotter_magic_spells): "
set /p APP_DESC="앱 설명을 입력하세요: "
set /p KEYSTORE_PASSWORD="키스토어 비밀번호를 입력하세요: "
echo.
REM 3단계: 새 키스토어 생성
echo [3/5] 새 키스토어 생성 중...
cd android\app
echo.
echo 다음 정보를 입력하세요:
echo (엔터를 눌러 건너뛰기 가능)
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload -storepass "%KEYSTORE_PASSWORD%" -keypass "%KEYSTORE_PASSWORD%"
cd ..\..
echo ✓ 키스토어 생성 완료
echo.
REM 4단계: key.properties 생성
echo [4/5] key.properties 파일 생성 중...
(
echo # 키스토어 비밀번호
echo storePassword=%KEYSTORE_PASSWORD%
echo # 키 비밀번호
echo keyPassword=%KEYSTORE_PASSWORD%
echo keyAlias=upload
echo storeFile=upload-keystore.jks
) > android\key.properties
echo ✓ key.properties 생성 완료
echo.
REM 5단계: 프로젝트 파일 수정
echo [5/5] 프로젝트 파일 수정 중...
REM build.gradle.kts 수정
powershell -Command "(Get-Content 'android\app\build.gradle.kts') -replace 'namespace = \".*?\" // 🔄 새 프로젝트 생성 시 수정 \(예: com\.company\.appname\)', 'namespace = \"%APP_ID%\" // 🔄 새 프로젝트 생성 시 수정 (예: com.company.appname)' | Set-Content 'android\app\build.gradle.kts'"
powershell -Command "(Get-Content 'android\app\build.gradle.kts') -replace 'applicationId = \".*?\" // 🔄 새 프로젝트 생성 시 수정 \(예: com\.company\.appname\)', 'applicationId = \"%APP_ID%\" // 🔄 새 프로젝트 생성 시 수정 (예: com.company.appname)' | Set-Content 'android\app\build.gradle.kts'"
powershell -Command "(Get-Content 'android\app\build.gradle.kts') -replace 'versionCode = \d+ // 🔄 새 프로젝트 생성 시 수정 \(1로 시작\)', 'versionCode = 1 // 🔄 새 프로젝트 생성 시 수정 (1로 시작)' | Set-Content 'android\app\build.gradle.kts'"
powershell -Command "(Get-Content 'android\app\build.gradle.kts') -replace 'versionName = \".*?\" // 🔄 새 프로젝트 생성 시 수정 \(1\.0\.0으로 시작\)', 'versionName = \"1.0.0\" // 🔄 새 프로젝트 생성 시 수정 (1.0.0으로 시작)' | Set-Content 'android\app\build.gradle.kts'"
echo ✓ build.gradle.kts 수정 완료
REM AndroidManifest.xml 수정
powershell -Command "(Get-Content 'android\app\src\main\AndroidManifest.xml') -replace 'android:label=\".*?\" // 🔄 새 프로젝트 생성 시 수정 \(앱 이름\)', 'android:label=\"%APP_NAME%\" // 🔄 새 프로젝트 생성 시 수정 (앱 이름)' | Set-Content 'android\app\src\main\AndroidManifest.xml'"
echo ✓ AndroidManifest.xml 수정 완료
REM pubspec.yaml 수정
powershell -Command "(Get-Content 'pubspec.yaml') -replace '^name: .*? # 🔄 새 프로젝트 생성 시 수정 \(프로젝트 코드명\)', 'name: %PROJECT_NAME% # 🔄 새 프로젝트 생성 시 수정 (프로젝트 코드명)' | Set-Content 'pubspec.yaml'"
powershell -Command "(Get-Content 'pubspec.yaml') -replace '^description: .*? # 🔄 새 프로젝트 생성 시 수정', 'description: %APP_DESC% # 🔄 새 프로젝트 생성 시 수정' | Set-Content 'pubspec.yaml'"
powershell -Command "(Get-Content 'pubspec.yaml') -replace '^version: .*? # 🔄 새 프로젝트 생성 시 수정 \(1\.0\.0\+1로 시작\)', 'version: 1.0.0+1 # 🔄 새 프로젝트 생성 시 수정 (1.0.0+1로 시작)' | Set-Content 'pubspec.yaml'"
echo ✓ pubspec.yaml 수정 완료
echo.
echo ============================================
echo ✅ 새 프로젝트 세팅 완료!
echo ============================================
echo.
echo 📋 설정된 내용:
echo - 앱 이름: %APP_NAME%
echo - Application ID: %APP_ID%
echo - 프로젝트 코드명: %PROJECT_NAME%
echo - 버전: 1.0.0+1
echo.
echo 🔒 보안 파일 생성:
echo - android/app/upload-keystore.jks
echo - android/key.properties
echo.
echo ⚠️ 다음 작업을 직접 수행하세요:
echo 1. 앱 아이콘 변경 (android/app/src/main/res/mipmap-*)
echo 2. flutter clean 실행
echo 3. flutter pub get 실행
echo 4. flutter build appbundle --release 테스트
echo.
echo 💾 키스토어 파일을 반드시 안전한 곳에 백업하세요!
echo.
pause