일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 유튜브
- 안드로이드 스튜디오
- ADB
- 안스
- build
- 안드로이드스튜디오
- GIT
- 의존성주입
- 에러
- Kotlin
- Github
- viewpager
- WebView
- Gradle
- 코루틴
- 안드로이드
- 레트로핏
- dart
- 스튜디오
- RecyclerView
- 웹뷰
- studio
- Android
- MVVM
- 코틀린
- coroutine
- Retrofit
- image
- 깃헙
- error
- Today
- Total
코딩하는 일용직 노동자
Release/Dev (상용/개발) 패키지, 앱이름 분리하기 본문
회사에서 상용버전의 앱을 운영하는 경우나, 상용버전과 개발버전을 앱에 다 설치하고 테스트하려는 경우 패키지명을 바꿔서 테스트를 하는 불편함이 있었습니다.
이럴경우 gradle 에서 상용버전과 개발버전의 패키지명을 쉽게 바꿀수 있는 옵션을 이용하면 편리합니다.
#1 app레벨의 gradle 파일에 옵션 추가하기
아래처럼 buildTypes 의 debug 에 applicationIdSuffix ".dev" 을 추가하면 debug 모드로 빌드할때는 기본적인 패키지명 뒤에 .dev 가 붙게 됩니다.
#2 매니페스트 앱이름 등 바꿔주기
한 기기에 상용버전과 개발버전의 앱을 다 설치해야 하기 때문에 manifestPlaceholders 를 이용해서 앱이름과 아이콘을 나눠주도록 아래 처럼 추가합니다.
또한 manifest 에 xmlns:tools="http://schemas.android.com/tools" 를 추가해주어야 합니다.
그리고 <application> 안에 tools:replace="icon, label" 추가해야만 gradle 설정한 appName, appIcon 매핑이 됩니다.
또한 파일이나 url 공유할때 사용하는 fileprovider 를 이용할 경우에도 패키지명을 아래처럼 다르게 명시해줘야 합니다.
fileprovider 를 사용할때 이 작업을 하지 않은 상태에서 앱을 빌드하려고 하면 아래의 에러가 발생하면서 빌드가 안됩니다.
The application could not be installed: INSTALL_FAILED_CONFLICTING_PROVIDER
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
manifestPlaceholders=[
appName:"@string/app_name",
appIcon:"@drawable/ic_launcher",
fileprovider:"com.lee.storagetest.fileprovider"
]
}
debug {
applicationIdSuffix ".dev"
manifestPlaceholders=[
appName:"StorageDev",
appIcon:"@drawable/ic_launcher_dev",
fileprovider:"com.lee.storagetest.dev.fileprovider"
]
}
}
'안드로이드' 카테고리의 다른 글
안드로이드 스튜디오 한글깨짐 for Mac (2) | 2021.09.03 |
---|---|
구글 플레이스토어 새로운 앱 서명 키 관리 (0) | 2021.09.02 |
Cannot invoke setValue on a background thread 에러 해결하기 (0) | 2021.05.12 |
kotlin.jvm.internal.Intrinsics.checkNotNullParameter 에러 해결하기 (1) | 2021.05.08 |
안드로이드 Logcat 에 json 표시를 이쁘게 해보자. (2) | 2021.05.05 |