ReactNativeでプロジェクトを作成するとデフォルトでcom.プロジェクト名となってしまう。
npx react-native init AwesomeTSProject --template react-native-template-typescript
この場合Androidのパッケージ名がcom.awesometsprojectとして作成される。
日本でアプリを作る場合、jp.domain.awesometsprojectみたいな名前で作ることが多いと思うが、手動でファイル内の値やパッケージ構造を変えるのはめんどくさい。
でもreact-native-renameならなんと自動で書き換えてくれる!
github.com
$ npx react-native-rename 新しいプロジェクト名 -b 変更後のパッケージ名
で変更できる
➜ AwesomeTSProject npx react-native-rename AwesomeTSProject -b jp.domain.awesometsproject npx: 56個のパッケージを4.068秒でインストールしました。 Please try a different name.
プロジェクト名はそのままでパッケージ名だけ変更することはできないようなので、一旦別のプロジェクト名でrenameしてみる。
➜ AwesomeTSProject npx react-native-rename AwesomeTSProjectRename -b jp.domain.awesometsproject npx: 56個のパッケージを3.475秒でインストールしました。 /ios/AwesomeTSProjectRename RENAMED /ios/AwesomeTSProjectRename-tvOS RENAMED /ios/AwesomeTSProjectRename-tvOSTests RENAMED /ios/AwesomeTSProjectRename.xcodeproj RENAMED /ios/AwesomeTSProjectRenameRename.xcodeproj/xcshareddata/xcschemes/AwesomeTSProject-tvOS.xcscheme RENAMED /ios/AwesomeTSProjectRenameRename.xcodeproj/xcshareddata/xcschemes/AwesomeTSProject.xcscheme RENAMED /ios/AwesomeTSProjectRenameTests RENAMED /ios/AwesomeTSProjectRenameRenameTests/AwesomeTSProjectTests.m RENAMED mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProject.xcworkspace Ignore above error if this file doesn't exist mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProjectRename/AwesomeTSProject.entitlements Ignore above error if this file doesn't exist mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProject-Bridging-Header.h Ignore above error if this file doesn't exist /android/app/src/main/res/values/strings.xml MODIFIED /index.js MODIFIED /ios/AwesomeTSProjectRename/Info.plist MODIFIED /package.json MODIFIED /app.json MODIFIED /ios/AwesomeTSProjectRename.xcodeproj/project.pbxproj MODIFIED /ios/AwesomeTSProjectRename/AppDelegate.m MODIFIED /android/settings.gradle MODIFIED /ios/Podfile MODIFIED /app.json MODIFIED /android/app/src/main/java/jp/domain/awesometsproject BUNDLE INDENTIFIER CHANGED /android/app/src/main/java/jp/domain/awesometsproject/MainActivity.java MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainApplication.java MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainActivity.java MODIFIED /android/app/build.gradle MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainApplication.java MODIFIED /android/app/src/main/AndroidManifest.xml MODIFIED Done removing previous bundle directory. Done removing builds. APP SUCCESSFULLY RENAMED TO "AwesomeTSProjectRename"! 🎉 🎉 🎉 Podfile has been modified, please run "pod install" inside ios directory. Please make sure to run "watchman watch-del-all" and "npm start --reset-cache" before running the app.
希望のプロジェクト名とパッケージ名で再度実行する。
➜ AwesomeTSProject npx react-native-rename AwesomeTSProject -b jp.domain.awesometsproject npx: 56個のパッケージを3.366秒でインストールしました。 /ios/AwesomeTSProject RENAMED /ios/AwesomeTSProject-tvOS RENAMED /ios/AwesomeTSProject-tvOSTests RENAMED /ios/AwesomeTSProject.xcodeproj RENAMED mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProject.xcodeproj/xcshareddata/xcschemes/AwesomeTSProjectRename-tvOS.xcscheme Ignore above error if this file doesn't exist mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProject.xcodeproj/xcshareddata/xcschemes/AwesomeTSProjectRename.xcscheme Ignore above error if this file doesn't exist /ios/AwesomeTSProjectTests RENAMED mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProjectTests/AwesomeTSProjectRenameTests.m Ignore above error if this file doesn't exist mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProjectRename.xcworkspace Ignore above error if this file doesn't exist mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProject/AwesomeTSProjectRename.entitlements Ignore above error if this file doesn't exist mv: no such file or directory: /home/kyamashiro/workspace/AwesomeTSProject/ios/AwesomeTSProjectRename-Bridging-Header.h Ignore above error if this file doesn't exist /android/app/src/main/res/values/strings.xml MODIFIED /index.js MODIFIED /ios/AwesomeTSProject/Info.plist MODIFIED /package.json MODIFIED /app.json MODIFIED /ios/AwesomeTSProject.xcodeproj/project.pbxproj MODIFIED /ios/AwesomeTSProject.xcodeproj/xcshareddata/xcschemes/AwesomeTSProject-tvOS.xcscheme MODIFIED /ios/AwesomeTSProject.xcodeproj/xcshareddata/xcschemes/AwesomeTSProject.xcscheme MODIFIED /ios/AwesomeTSProject/AppDelegate.m MODIFIED /android/settings.gradle MODIFIED /ios/AwesomeTSProjectTests/AwesomeTSProjectTests.m MODIFIED /ios/Podfile MODIFIED /app.json MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainActivity.java MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainApplication.java MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainActivity.java MODIFIED /android/app/build.gradle MODIFIED /android/app/src/main/java/jp/domain/awesometsproject/MainApplication.java MODIFIED /android/app/src/main/AndroidManifest.xml MODIFIED Bundle directory was not changed. Keeping... Done removing builds. APP SUCCESSFULLY RENAMED TO "AwesomeTSProject"! 🎉 🎉 🎉 Podfile has been modified, please run "pod install" inside ios directory. Please make sure to run "watchman watch-del-all" and "npm start --reset-cache" before running the app.
ちなみにandroid/app/src/debug内のパッケージはrenameされない。動作に問題はないが気持ち悪いので修正しておこう。