왠만하면 안바꾸려고 했던 프로젝트 이름을 바꾸게 되었다.
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" 넣고 번들링 했더니 정상적으로 처리되었다.