React Native에서 Android의 패키지 이름 변경


179

내가 사용하는 react-native init MyApp새로운 네이티브 응용 프로그램 반응 초기화 할 수 있습니다. 이것은 패키지와 함께 안드로이드 프로젝트를 만들었습니다 com.myapp.

이 패키지 이름을 변경하는 가장 좋은 방법은 무엇입니까 com.mycompany.myapp? 예를 들면 다음과 같습니다. ?

변경하려고 시도했지만 AndroidManifest.xml다른 오류가 발생했기 때문에 그 방법이 아니라고 가정합니다.

어떤 생각?


패키지 이름을 마우스 왼쪽 버튼으로 클릭하고 리 팩터-> 이름 바꾸기 옵션으로 이동하여 패키지 이름을 바꿉니다.
kunal

나에게 가장
효과적인


이것을 시도해보십시오 안드로이드 앱 패키지
c49

나를 위해 검색 및 교체 작동
shesh nath

답변:


411

프로젝트의 하위 폴더 이름을 " android / app / src / main / java / MY / APP / OLD_ID / "에서 " android / app / src / main / java / MY / APP / NEW_ID / "로 변경했습니다.

그런 다음 이전 및 새 패키지 ID를 수동으로 전환하십시오.

: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java :

package MY.APP.NEW_ID;

에서 안드로이드 / 응용 프로그램 / SRC / 메인 / 자바 / 내 / APP / NEW_ID / MainApplication.java :

package MY.APP.NEW_ID;

에서 안드로이드 / 응용 프로그램 / SRC / 주 /의 AndroidManifest.xml :

package="MY.APP.NEW_ID"

그리고 android / app / build.gradle에서 :

applicationId "MY.APP.NEW_ID"

( 선택 사항 ) android / app / BUCK에서 :

android_build_config(
  package="MY.APP.NEW_ID"
)
android_resource(
  package="MY.APP.NEW_ID"
)

Gradle은 결국 / android 폴더 에서 청소 합니다.

./gradlew clean

23
또한 이전 패키지 값을 새 값으로 바꾸려면 파일 BUCK을 편집해야합니다. BTW, MainAcitivity.java 및 MainApplication.java 파일 2 개를 새 실제 경로로 재배치해야합니다.
Golden Thumb

4
또한 디렉토리 이름 android/app/src/main/java/com/old_app_name/...com/new_app_name/그것은 작동하는 것 같다.
nicholas

수동으로 안드로이드 장치 시뮬레이터를 강제로 청소할 때까지 "세션을 완료하지 못했습니다 : INSTALL_FAILED_UPDATE_INCOMPATIBLE"오류가 발생했습니다. adb uninstall my.package.name ... 따라서 지시 사항은 좋지만 Android 시뮬레이터는 길 찾기가 작동하지 않는 것처럼 보이는 나쁜 방법입니다. (그리고 단순히 앱을 제거해도 문제가 해결되지 않았습니다!)
Bill Patterson

나는 이것에 대해 읽고 있던 나는이 라이브러리를 시도 : npmjs.com/package/react-native-rename은 이 꽤 잘 작동하는 것, 그것은 단지 응용 프로그램의 이름을 변경하지 않습니다 그러나 또한 번들 식별자를 변경할 수 있습니다
fray88을

1
그것을 할 안드로이드 / 폴더 @Anuj
Cherniv

76

내가 사용하는 반응 - 기본 - 이름 바꾸기 * NPM 패키지를. 통해 설치

npm install react-native-rename -g

그런 다음 React Native 프로젝트의 루트에서 다음을 실행하십시오.

react-native-rename "MyApp" -b com.mycompany.myapp

간단하고 까다로운 방법으로 MainApplication.java를 수동으로 업데이트하면됩니다.
Gopal Devra

59
감사합니다. 프로젝트를 중단했습니다
Leap Hawk

@AkashRajput 문제를 해결 했습니까? 어떤 해결책을 찾았다면 알려주십시오
Saleem Khan

@SaleemKhan 프로젝트를 다시 만들어야했습니다. 이번에는 react-native init ..로 파일을 복사하십시오.
Leap Hawk

5
그것은 내 프로젝트를 중단하고 새로운 프로젝트를 만들어야했다 :(
MujtabaFR

24

에서 패키지 이름을 변경하려면 com.myapp에 : com.mycompany.myapp(예)

  1. 반응 앱의 iOS 앱의 경우 일반적으로 xcode를 사용하십시오.
  2. Android 앱의 경우 모듈 수준에서 build.gradle을 엽니 다. android/app폴더 에있는 것 당신은 발견 할 것이다
// ...
defaultConfig {
     applicationId com.myapp
     // ...
}
// ...

com.myapp를 원하는대로 변경하십시오 .

도움이 되었기를 바랍니다.


4
패키지 이름을 변경하는 가장 쉬운 방법입니다. 로컬 패키지 이름을 변경하지 않으면 다음 빌드 패키지가 변경됩니다. 감사! 이 작업을 수행 한 후 수행 ./gradlew clean한 후와 ./gradlew app:assembleRelease.
Michael Harley

2
"그러나, applicationId로컬 package이름은 서로 독립적입니다", " applicationId고유 장치와 구글 플레이 스토어에서 응용 프로그램을 식별합니다"- developer.android.com/studio/build/application-id
eightyfive

나를 위해 작동하지 않음No matching client found for package name 'xxxxx'
MichaelMao

10

react-native-rename npm 패키지를 사용하면됩니다.

사용하여 설치

npm install react-native-rename -g

그런 다음 React Native 프로젝트의 루트에서 다음을 실행하십시오.

react-native-rename "MyApp" -b com.mycompany.myapp

react-native-rename on npm

그러나이 lib는 MainActivity.java및을 제거합니다 MainApplication.java. 패키지 이름을 변경하기 전에이 두 파일에서 백업을 제공하고 패키지 이름을 변경 한 후 다시 원래 위치에 두십시오. 이 솔루션은 나를 위해 작동

추가 정보 : 반응 네이티브 이름 바꾸기


1
앱 이름을 변경하지 않으면 "다른 이름으로 시도하십시오."
Made in Moon

1
실제로, 나는 다른 프로젝트 이름을 시도합니다. 그러나 프로젝트 이름을 변경하면 react-native-rename은 프로젝트에서 해당 두 파일을 제거합니다.
Moein Hosseini

8

Goto Android 스튜디오

패키지를 마우스 오른쪽 버튼으로 클릭하십시오 (대부분 com)-> Refractor-> Rename-> 대화 상자에서 새 패키지 이름 입력-> Refractor

어디에서나 패키지 이름을 바꿉니다.


내가 생각하는 전체 프로젝트 구조에는 영향을 미치지 않습니다.
Kishan Oza

React-Native JS 프로젝트로 어떻게 할 수 있습니까?
Arifur Rahman

8

초기화 스크립트는 준 이름 (예를 기반으로 안드로이드에 대한 고유 식별자 생성 com.acmeapp을위한을 AcmeApp).

에서 applicationId 키를 찾아 어떤 이름이 생성되었는지 확인할 수 있습니다 android/app/build.gradle.

해당 고유 식별자를 변경해야하는 경우 아래 설명 된대로 지금 수행하십시오.

에서 /android폴더의 모든 항목을 대체 com.acmeapp하여을com.acme.app

그런 다음 다음 명령을 사용하여 디렉토리 구조를 변경하십시오.

mkdir android/app/src/main/java/com/acme

mv android/app/src/main/java/com/acmeapp android/app/src/main/java/com/acme/app

앱 식별자의 각 점에 대한 폴더 수준이 필요합니다.

출처 : https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/


7

Android Studio를 사용하는 경우

변화 com.myappcom.mycompany.myapp

  1. 아래에 새 패키지 계층 구조 com.mycompany.myapp를 작성하십시오. android/app/src/main/java

  2. Android Studio GUI com.myappcom.mycompany.myapp사용하여 모든 클래스를 복사

  3. 안드로이드 스튜디오는 모든 카피 된 클래스에 적합한 패키지 이름을 지정합니다. 이것은 일부 사용자 정의 모듈이 있고 모든 .java 파일에서 수동으로 바꾸고 싶지 않은 경우에 유용합니다.

  4. 업데이트 android/app/src/main/AndroidManifest.xmlandroid/app/build.gradle(대체 com.myappcom.mycompany.myapp

  5. 프로젝트 동기화 (그라 데 빌드)


5

@Cherniv의 답변을 기반으로 한 솔루션이 있습니다 (macOS에서 작동합니다). 두 가지 차이점 : java 폴더에 Main2Activity.java가 있고 동일한 작업을 수행하고 반응 네이티브 패키지가 자동으로 수행하는 것처럼 보이기 때문에 ./gradlew clean 호출을 귀찮게하지 않습니다.

어쨌든 내 솔루션은 Cherniv의 기능을 수행합니다. 단일 코드 세트를 사용하여 여러 응용 프로그램을 빌드하고 npm 스크립트를 실행할 때마다 패키지 이름을 쉽게 변경할 수 있기를 위해 bash 쉘 스크립트를 만들었습니다.

여기 내가 사용한 bash 스크립트가 있습니다. 사용하려는 packageName을 수정하고 원하는 다른 것을 추가해야합니다. 그러나 기본 사항은 다음과 같습니다. .sh 파일을 작성하고 권한을 부여한 후 react-native를 실행하는 동일한 폴더에서 파일을 실행할 수 있습니다.

rm -rf ./android/app/src/main/java


mkdir -p ./android/app/src/main/java/com/MyWebsite/MyAppName
    packageName="com.MyWebsite.MyAppName"
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/Main2Activity.java
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainActivity.java
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainApplication.java
    sed -i '' -e "s/.*package=\".*/    package=\""$packageName"\"/" ./android/app/src/main/AndroidManifest.xml
    sed -i '' -e "s/.*package = '.*/  package = '"$packageName"',/" ./android/app/BUCK
    sed -i '' -e "s/.*applicationId.*/    applicationId \""$packageName"\"/" ./android/app/build.gradle

    cp -R ./android/app/src/main/javaFiles/ ./android/app/src/main/java/com/MyWebsite/MyAppName

면책 조항 : 먼저 Java 파일의 하단 근처에서 MainApplication.java의 주석을 편집해야합니다. 주석에 'package'라는 단어가 있습니다. 스크립트의 작동 방식으로 인해 'package'라는 단어가 포함 된 줄을 대신 사용합니다. 이 때문에이 단어는 다른 곳에서 사용 된 동일한 단어가있을 수 있기 때문에 나중에 증명되지 않을 수 있습니다.

두 번째 고지 사항 : 처음 3 개의 sed 명령은 javaFiles라는 디렉토리에서 Java 파일을 편집합니다. 나중에 새 패키지를 추가 할 수 있으므로 거기에서 복사 된 하나의 Java 파일 세트를 원하기 때문에이 디렉토리를 직접 만들었습니다. 아마 같은 일을하고 싶을 것입니다. 따라서 java 폴더에서 모든 파일을 복사하고 (하위 폴더를 통해 실제 java 파일을 찾으십시오) javaFiles라는 새 폴더에 넣으십시오.

세 번째 고지 사항 : packageName 변수를 편집하여 스크립트 상단과 하단에있는 경로 (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)와 일치하도록 편집해야합니다.


2

VS Code에서을 누르고 Ctrl + Shift + F'찾기'에 이전 패키지 이름을 입력하고 '바꾸기'에 새 패키지를 입력하십시오. 그런 다음 '모든 항목 바꾸기'를 누르십시오.

실용적이지 않습니다. 그러나 그것은 나를 위해 속임수를했습니다.


2

사용하다 npx react-native-rename <newName>

맞춤 번들 식별자 사용 (Android 만 해당. iOS의 경우 Xcode를 사용하십시오)

$ npx react-native-rename <newName> -b <bundleIdentifier>

먼저 새 지점으로 전환 (선택 사항이지만 권장 됨)

$ git checkout -b rename-app

그런 다음 앱 이름 바꾸기 $ npx react-native-re-name "여행 앱"

맞춤 번들 식별자 사용

$ npx react-native-rename "Travel App" -b com.junedomingo.travelapp 

이름을 변경 한 후 android 폴더로 이동하여를 실행하십시오 gradlew clean. 그런 다음 주 프로젝트로 돌아가서을 실행하십시오 npx react-native run-android.

또한 이전 프로젝트에 google-services.json 파일이 있으면 새 프로젝트에 따라 변경하십시오 ... 그러면 좋습니다 :)

https://github.com/junedomingo/react-native-rename#readme 더보기


1

당신의 이름을 간단한 단계를 수행 app name하고 Package name경우에 당신은 안드로이드 폴더에있는 사용자 정의를 변경하지 않은 (즉. 유 단지 프로젝트를 초기화 시나리오)

  1. 간단하게 변경 namepackage.json당신이 필요로 파일을 저장합니다.
  2. android라는 폴더를 제거하십시오.
  3. 명령을 실행 react-native upgrade

참고 : 의견에서 언급 한 ivoteje50 과 같이 키 저장소를 생성하기 위해 공식 지침을 이미 따르면 키 저장소를 제거하고 새 앱에 다시 서명 할 수 없으므로 안드로이드 폴더를 제거하지 마십시오.


1
키 스토어를 생성하기위한 공식 지침을 이미 따른 경우 키 스토어가 제거되고 새 앱에 다시 서명 할 수 없으므로 안드로이드 폴더를 제거하지 마십시오.
Ivotje50

2
하지마! 당신은 안드로이드 코드에 재생성되지 않는 수많은 커스텀 코드를 가지고있을 것입니다
pie6k

1

Android Studio로 이동하여 앱을 열고 java를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기를 선택한 다음 패키지를 선택하십시오.

원하는 이름을 입력하십시오 (예 : com.something).

다른 패키지 (이름을 바꾸려는)에서 새 패키지로 파일을 이동하십시오. 이전 패키지를 삭제하십시오.

편집기에서 프로젝트로 이동하여 모든 파일을 검색하기위한 바로 가기를 사용하십시오 (Mac의 경우 shift cmd F). 이전 패키지의 이름을 입력하십시오. 모든 참조를 새 패키지 이름으로 변경하십시오.

Android Studio, 빌드, 프로젝트 정리, 프로젝트 다시 빌드로 이동하십시오.

끝난!

행복한 코딩 :)


1

내가 사용했습니다 반응 네이티브 이름 바꾸기를 패키지.

터미널에서 다음 명령을 실행하여 설치하십시오.

npm install react-native-rename -g

React Native 프로젝트의 루트에서 다음 명령을 실행하십시오.

react-native-rename "NewNameOfApp" -b com.companyname.newnameofapp

0

아래에서 패키지 이름의 필요한 모든 변경 사항을 취하는 react-native-rename 패키지를 사용할 수 있습니다

app / mainapplication.java

AndroidManifest.xml

그러나 java / com 폴더 아래에있는 모든 파일의 패키지 이름을 수동으로 변경하십시오. 스플래시 화면 활동을 작성할 때 이전 패키지 이름이 업데이트되지 않기 때문입니다.

https://www.npmjs.com/package/react-native-rename


0

IDE의 검색 및 바꾸기 도구를 사용하면 간단합니다.


0

이것을 실행 한 후 :

react-native-rename "MyApp" -b com.mycompany.myapp

또한 고토에 있는지 확인 Build.gradle하에 android/app/... 아래와 같이 응용 프로그램 아이디의 이름을 변경 :

defaultConfig {
        applicationId:com.appname.xxx
........
}

-3

android / app / src / main / AndroidManifest.xml 파일로 이동 -

업데이트 :

attr android : 요소 애플리케이션의 레이블 :

이전 값 -android : label = "@ string / app_name"

새로운 가치 -android : label = "(문자열에 넣을 문자열)"

attr android : 요소 활동의 레이블 :

이전 값 -android : label = "@ string / app_name"

새로운 가치 -android : label = "(문자열에 넣을 문자열)"

저에게 도움이 되었기를 바랍니다.


2
솔직히이 답변이 그 어느 때보 다 많이 다운 된 것으로 생각하지 않습니다. 그러나이 답변 에서는 패키지 이름 을 변경 하는 방법에 대한 질문에서 다루지 않았습니다 . 그러나 "런처에 나타나는 앱 제목을 변경하는 방법"이라는 질문에 대한 답변입니다. 관련 답변입니까? 실제로는 아닙니다. 유용한 정보가 포함되어 있습니까? 예. 따라서, 난 당신이 실행 제목에 대해 묻는 질문을 찾아 솔루션을 게시 제안 대신 여기에.
Dev-iL
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.