ReactNative

[React Native] ์•ˆ๋“œ๋กœ์ด๋“œ aab ํŒŒ์ผ ์ƒ์„ฑ ์‹œ ํŒŒ์ผ๋ช… ๋ณ€๊ฒฝํ•˜๊ธฐ

pocket.dev 2024. 10. 22. 21:04
๋ฐ˜์‘ํ˜•

android logo

 

๐Ÿ“Œ ํ”Œ๋ ˆ์ด์Šคํ† ์–ด ๋ฐฐํฌ ์šฉ aab ํŒŒ์ผ ์ƒ์„ฑ ๋ช…๋ น์–ด

$ cd android
$ ./gradlew app:bundleRelease

 

์ด๋Ÿฌ๋ฉด {ํ”„๋กœ์ ํŠธํด๋”}/android/app/build/outputs/bundle/release ํด๋”์— app-release.aab๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ aab ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.

์ˆ˜์ • ๋ฐฐํฌ ๋“ฑ์œผ๋กœ ์ธํ•ด ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉด ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ƒ์„ฑ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ์•ˆ๋˜๊ฑฐ๋‚˜, ํŒŒ์ผ๋ช…์œผ๋กœ ์‹ ๋ฒ„์ „์˜ ํŒŒ์ผ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

์ตœ์‹  aab ํŒŒ์ผ์ž„์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ app-release.aab ํŒŒ์ผ์— ๋‚ ์งœ ์ •๋ณด๊ฐ€ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

๐Ÿ“Œ app/build.gradle ํŒŒ์ผ ์ˆ˜์ •

android {
	...
}

// ์ด ๋ถ€๋ถ„ ์ฝ”๋“œ ์ถ”๊ฐ€
tasks.whenTaskAdded { task ->
    if (task.name == "bundleRelease") {
        task.doLast {
            def releaseDir = new File("$buildDir/outputs/bundle/release")
            releaseDir.eachFile { file ->
                if (file.name.endsWith(".aab")) {
                    def newFileName = "app-release-${new Date().format('yyyyMMdd_HHmmss')}.aab"
                    file.renameTo(new File(releaseDir, newFileName))
                }
            }
        }
    }
}

 

์ด๋ ‡๊ฒŒ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•œ ๋‹ค์Œ์— aab ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด๋ณด๋ฉด app-release-{yyyyMMdd_HHmmss}.aab ํ˜•ํƒœ๋กœ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.