티스토리 뷰

Mobile/Android

[Android] AndroidStudio build setting

out of coding 2016. 7. 26. 17:09

AndroidStudio Build Setting


1. APK 이름 변경


Project를 Build하면 Build된 APK는 app/build/outputs/apk에 위치합니다.

다음은 [appname]-[buildtype]-[version].apk 파일 형식으로 나오는 방법입니다.


android {

...

    defaultConfig {

...

        project.ext.set("archivesBaseName", "CustomName");

    }


    applicationVariants.all {

        variant ->

            variant.outputs.each {

                output ->

                    output.outputFile = new File(

                            output.outputFile.parent,

                            output.outputFile.name.replace(".apk", "-${variant.versionName}.apk"))

            }

    }

}


2. ProGuard 적용


ProGuard는 Java Code를 위한 최적화 및 난독화 Utility입니다.


이것을 적용하기 위해서는 app/build.gradle을 다음과 같이 수정합니다.

일반적으로 프로젝트 생성하면 자동으로 들어가 있습니다. (release 할 경우에만 프로가드 적용)


android {

    buildTypes {

        release {

            minifyEnabled true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }

    }

}


Custom으로 프로가드에서 제외를 시키고 싶을 경우에는 app/proguard-rules.pro를 수정합니다.

해당 Class에 최적화 및 난독화가 실행되지 않도록 -keep Option을 사용한 설정을 추가해 주면 됩니다.


-keep public class MyClass


3. Build시 App Signing 적용


gradle.properties파일의 수정. (궂이 여기에 추가안하고, build.gradle파일에 바로 적용해도 됩니다.)


RELEASE_STORE_FILE=.android/.keystore

RELEASE_STORE_PASSWORD=password

RELEASE_KEY_ALIAS=Release

RELEASE_KEY_PASSWORD=password


RELEASE_STORE_FILE: Keystore File의 경로. build.gradle과의 연동을 위해서 사용자의 Home Directory로 부터의 상대 경로를 입력합니다.

RELEASE_STORE_PASSWORD: keytool 실행 시 입력한 Keystore의 Password

RELEASE_KEY_ALIAS: keytool 명령 실행 시 -alias Option으로 입력한 Private Key의 이름

RELEASE_KEY_PASSWORD: keytool 실행 시 입력한 Private Key의 Password


app/build.gradle파일 수정


android {

    signingConfigs {

        release {

            storeFile       new File(System.properties['user.home'], RELEASE_STORE_FILE)

            storePassword   RELEASE_STORE_PASSWORD

            keyAlias        RELEASE_KEY_ALIAS

            keyPassword     RELEASE_KEY_PASSWORD

        }

    }

    buildTypes {

        release {

            signingConfig   signingConfigs.release

        }

    }

}

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함