룬아님의 취중코딩

안드로이드 Flavor관련 팁 본문

카테고리 없음

안드로이드 Flavor관련 팁

룬아님 2022. 4. 11. 23:53

Dev, Alpha, Beta, Production의 Flavor가 있고 Production을 제외한 다른 Flavor에서 같은 코드를 사용할 때


특정 Flavor를 제외하고 다른 Flavor에서는 같은 소스 코드를 사용해야할 때가 있을 수도 있다.
가장 간단한 방법으로는 Dev, Alpha, Beta에 같은 코드를 모두 복사하여 넣어주는 방법이 있지만 하나의 코드를 수정할 때 Flavor 마다 수정해야 하는 불편함과 사이드 이펙트를 감수해야했다.

이를 해결하기 위하여 gradle을 이용하였다.

    sourceSets {
        dev.java.srcDirs += 'src/beta/test'
        alpha.java.srcDirs += 'src/beta/test'
        beta.java.srcDirs += 'src/beta/test'
    }

Beta Flavor의 패키지에 test라는 디렉토리를 만들고 그곳에 공통적으로 사용될 코드를 넣고 sourceSets에서 각 Flavor의 srcDirs에 beta의 test 디렉토리의 경로를 추가해준다.

 

 

특정 Flavor에서만 uses-permission을 요구하지 않고 싶을 때


디버깅을 위해서 Production에서는 필요하지 않은 permission을 manifest에 추가했을 때에 실제 출시를 해야하는 Production에는 포함하고 싶지 않을 때가 있다.

    <uses-permission
        android:name="android.permission.SYSTEM_ALERT_WINDOW"
        tools:node="remove" />

Production의 manifest에서 remove를 추가하여 permission을 선언해주면 해당 permission은 해당 Flavor에서 요청하지 않게된다.

참고할 공식문서

 

다중 manifest 파일 병합  |  Android 개발자  |  Android Developers

manifest 병합 및 manifest 병합 도구에 관해 자세히 알아보세요.

developer.android.com

 

반응형
Comments