- 빌드, 테스트, 의존성 관리 등 프로젝트 내부 작업은 Gradle이 더 적합
- 스토어 업로드, 알림, 릴리즈 자동화 등 배포 프로세스 관리는 Fastlane이 편함
Play 업로드를 Gradle에서 직접 처리하려면
com.github.triplet.play 플러그인을 적용한 뒤 업로드용 Task를 구성할 수 있습니다.
plugins {
id("com.github.triplet.play") version "4.0.0"
}
play {
serviceAccountCredentials.set(file("app/play-api-key.json"))
track.set("production")
defaultToAppBundles.set(true) // AAB 업로드
}
serviceAccountCredentials : Play Console 서비스 계정 JSON 키 파일track : 업로드 대상 트랙 (production, internal, beta 등)defaultToAppBundles : AAB 기준 업로드 여부val versionName = providers.gradleProperty("VERSION_NAME")
.orElse("unknown")
.get()
tasks.register("productionUpload") {
group = "productionUpload"
description = "프로덕션 Play 업로드"
// Release 번들 생성 + Play 업로드 Task 의존성 연결
dependsOn("bundleRelease")
dependsOn("publishReleaseBundle")
doFirst {
println("🚀 Production 업로드 시작합니다.")
println("📦 Version: $versionName")
}
doLast {
println("🎉 Production $versionName 버전 업로드 완료")
}
}
bundleRelease : AAB 생성publishReleaseBundle : Play Publisher 플러그인이 제공하는 업로드 Task./gradlew productionUpload -PVERSION_NAME=1.2.3 형태로 실행 가능lane 하나로 릴리즈 프로세스를 정리할 수 있음default_platform(:android)
platform :android do
desc "Release AAB 빌드"
lane :build_release do
gradle(
project_dir: ".",
task: "bundle",
build_type: "Release"
)
end
desc "Play Console 프로덕션 업로드"
lane :publishReleaseToStore do
build_release
upload_to_play_store(
package_name: "com.fastlane.test",
track: "production",
release_status: "draft",
aab: "app/build/outputs/bundle/release/app-release.aab",
json_key: "app/play-api-key.json",
# 스토어 리소스/메타데이터 안 올릴 거면 아래 유지
skip_upload_apk: true,
skip_upload_images: true,
skip_upload_screenshots: true,
skip_upload_metadata: true
)
end
end
json_key_file("app/play-api-key.json") # Path to the json
package_name("com.fastlane.test")
[Gradle Play Publisher]
[Fastlane supply]
./gradlew productionUpload
fastlane publishReleaseToStore
[Gradle]
[Fastlane]
Gradle은 빌드 엔진, Fastlane은 릴리즈 자동화 도구로 역할
- Gradle은 빌드 시스템 중심으로 Play 업로드까지 확장 가능하지만, 배포 자동화가 복잡해질수록 설정과 관리 비용이 증가할 수 있음
- Fastlane은 빌드는 Gradle에 맡기고, 릴리즈·스토어 업로드·메타데이터·알림 등 배포 흐름을 통합 관리하는 데 강점이 있음