react native - 프로젝트 이름, 패키지 이름 변경 (관련 파일 일괄 변경)

왠만하면 안바꾸려고 했던 프로젝트 이름을 바꾸게 되었다.

react-native-rename 이용해서 우선 변경하고 적용되지 않는 것들이나 오류를 찾아 변경하기로 했다.

npx react-native-rename "Next Project Name" -b com.nextProjectName.app

"Next Project Name" 에 변경하려는 프로젝트 이름을 넣고,
뒤에 com.nextProjectName.app 은 bundle identifier 이므로 변경하려는 bundle identifier로 변경하면 된다.

iOS의 경우에는

cd ios && pod install && cd ..
npx react-native run-ios

으로 쉽게 변경된 것을 확인할 수 있었다.

Android의 경우는

cd android
./gradlew clean
cd ..
npx react-native run-android

을 해보았지만 오류가 났다.

오류 내용을 보았다.

Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081

디바이스 연결해서 디버깅 중이였는데 이 부분을 다시 반영해야 하나 해서 다음 코드로 업데이트 했다.

cd android
adb reverse tcp:8081 tcp:8081
cd ..
npx react-native run-android

다시 번들링 하니 이번에는 추가된 오류 라인이 떴다.

Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
/프로젝트 폴더/android/app/src/main/java/com/프로젝트/app/SplashActivity.java:12: error: cannot find symbol
        Intent intent = new Intent(this, MainActivity.class);

아무래도 react-native-splash-screen 설치 후 추가 했던 스플래시 화면에서 오류가 난 것 같다. 파일을 열어서 확인해보니 상단에 예전 패키지 이름이 적혀있었다.

package com.예전 패키지 번들 id.app;

이 부분을 com.nextProjectName.app 라고 아까 변경해주었기 때문에 아래처럼 수정해 주었다.

package com.nextProjectName.app;

이 부분 변경해서 배포하니 또 오류 이번에 찾아보니 /프로젝트 폴더/android/app/src/main/java/com/ounwan/app/MainActivity.java 파일에 예전 프로젝트 이름이 있었다.

위에 이름 변경할 때 "Next Project Name" 라고 쓰인 것을 MainActivity.java 안에서 아래 부분을 찾아 넣었다.

@Override
  protected String getMainComponentName() {
    return "예전 프로젝트 이름";
  }

여기에 "Next Project Name" 넣고 번들링 했더니 정상적으로 처리되었다.

TOP