본문 바로가기

IT IS IT/Flutter

플러터(Flutter)에서 Android Package 이름 설정

728x90
반응형

 

안드로이드 개발 환경에서 Package 이름은 각 앱들을 구별하는 고유 ID의 역할을 한다.

그래서 PlayStore에 등록할 때, 앱의 Package 이름이 이미 존재한다면 등록할 수 없다.

 

그러므로 우리는 필요에 따라 패키지명을 변경해야 할 수 있다.

 

Flutter에서는 이 패키지명을 직접 바꾸는 방법과, pub.dev에 올라온 패키지(Package)를 활용하여 바꾸는 방법이 존재한다.

이 외의 방법이 존재하면 댓글로 나의 모자람을 꾸짖어달라.

 

그럼 각각의 방법에 대해서 알아보자.

 

1. 직접 변경하기.

Step 1. build.gradle으로 이동하기.

 

먼저 앱 패키지명을 변경하기 위해서 build.gradle로 이동한다.

그런데 Flutter 내부에는 build.gradle이 여러 개가 존재한다.

우리가 열어야 하는 파일의 경로는 아래와 같다.

 

[프로젝트명 -> android -> build.gradle]

 

해당 경로로 이동하여 아래로 내리다보면 defaultConfig을 찾을 수 있다.

이곳에서 applicationId 값을 바꾸면 된다.

 

 

TMI 1. AndroidManifest.xml 설정에 관하여.

 

다른 게시글에서는 추가적으로 android-app-src 폴더 내의 main, debug, profile 경로의 'AndroidManifest.xml'을 열라고 한다.

이후 아래처럼 속성값을 적으라고 안내되어 있다.

package="com.example.new_package_name"

 

근데 나는... 아무리 찾아도 저 package 속성이 보이지 않았다.

그래서 위의 applicationId만 바꿔도 정상작동 함을 확인할 수 있었다.

 

만약 package 속성이 있고, 내 방법으로 안된다면 각각의 경로에 해당 소스를 추가해보자.

 

TMI 2. android의 namespace 값과 MainActivity.kt의 관계

 

build.gradle을 내려 보다 보면, 중간에 패키지명이 하나 더 보이는 것을 확인할 수 있다.

이를 변경해 보면 에러가 나고 실행이 되지 않는다.

 

namespace의 값은 '프로젝트명 - android - app - src - main - kotlin\패키지명' 경로 내의 'MainActivity.kt' 파일과 연동되어 있는 듯하다.

 

그래서 해당 속성값을 바꾸려면 MainActivity.kt의 package 이름도 같이 바꾸어야 정상적으로 실행이 된다.

뭐 굳이 건들 필요가 없어 보인다.

 

package와 namespace는 이름이 같아야함.

 

2. 패키지(package)를 통한 package명 변경

 

package 이름을 바꾸기 위해 package를 쓴다니 기분이 묘하다.

인공지능 개발을 위해 인공지능을 쓰는 그런 라임..?

 

아무튼, change_app_package_name 1.1.0이라는 패키지를 설치할 것이다.

아래의 방법 중 편한 방법으로 설치하자.

 

Terminal에서 설치 시

Dart 환경에서 설치시
 $ dart pub add change_app_package_name
 
Flutter 환경에서 설치시
 $ flutter pub add change_app_package_name

 

pubspec.yaml에 삽입시

dependencies:
  change_app_package_name: ^1.1.0

 

참고로 해당 패키지는 개발 시에만 활용되기 때문에, 'dev_dependencies' 하위에 넣어도 된다.

내가 알기로 'dev_dependencies' 내부의 패키지는 앱 추출 시 들어가지 않는다.

즉, 용량 등의 리소스를 좀 더 아낄 수 있다.

 

아니면 뭐 이름 바꾸고 해당 패키지를 삭제해도 된다.

 

자, 이제 설치가 완료되었다면 아래 명령어를 통해서 패키지 명을 변경할 수 있다.

flutter pub run change_app_package_name:main com.내가원하는.패키지명.입력

 

이로써 패키지 이름을 변경하는 두가지 방법에 대해서 알아보았다.

 

<Flutter 터미널 명령어 알아보기>

 

flutter doctor, clean 등 Terminal 명령어 모음.

flutter는 Terminal 에서 명령어를 입력함으로써 다양한 기능을 수행할 수 있다. 물론 일부 기능은 GUI 환경에서도 가능하지만, 이런 명령어를 알고 있으면 일일히 버튼을 찾아 헤매지 않아도 된다는

hobbyspoon.tistory.com

 

728x90
반응형