Kiedyś react-native init MyApp
inicjowałem nową aplikację React Native. Stworzyło to m.in. projekt na Androida z pakietem com.myapp
.
Jaki jest najlepszy sposób zmiany nazwy pakietu, na przykład na com.mycompany.myapp
:?
Próbowałem to zmienić, AndroidManifest.xml
ale spowodowało to inne błędy, więc zakładam, że tak nie jest.
Dowolny pomysł?
Odpowiedzi:
Zmieniłem nazwę podfolderu projektu z: „ android / app / src / main / java / MY / APP / OLD_ID / ” na: „ android / app / src / main / java / MY / APP / NEW_ID / ”
Następnie ręcznie przełączono stare i nowe identyfikatory pakietów:
W: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java :
W systemie Android / app / src / main / java / MY / APP / NEW_ID / MainApplication.java :
W systemie Android / app / src / main / AndroidManifest.xml :
A w android / app / build.gradle :
( Opcjonalnie ) W systemie Android / app / BUCK :
Czyszczenie Gradle na koniec (w folderze / android ):
źródło
android/app/src/main/java/com/old_app_name/
na...com/new_app_name/
i wydaje się, że działa.Używam pakietu react-native-rename * npm. Zainstaluj go przez
Następnie z katalogu głównego projektu React Native wykonaj następujące czynności:
źródło
Aby zmienić nazwę pakietu z
com.myapp
na:com.mycompany.myapp
(na przykład),android/app
folderze. ZnajdzieszZmień na
com.myapp
cokolwiek potrzebujesz.Mam nadzieję że to pomoże.
źródło
./gradlew clean
i wtedy./gradlew app:assembleRelease
.applicationId
lokalna ipackage
nazwa lokalna są od siebie niezależne”, „applicationId
jednoznacznie identyfikuje Twoją aplikację na urządzeniu i w Sklepie Google Play” - developer.android.com/studio/build/application-idNo matching client found for package name 'xxxxx'
możesz po prostu użyć pakietu npm react-native-rename.
Zainstaluj za pomocą
npm install react-native-rename -g
Następnie z katalogu głównego projektu React Native wykonaj następujące czynności
react-native-rename "MyApp" -b com.mycompany.myapp
react-native-rename on npm
ale zauważ, że ta biblioteka usuwa
MainActivity.java
iMainApplication.java
. przed zmianą nazwy pakietu wykonaj kopię zapasową z tych dwóch plików, a po zmianie nazwy pakietu po prostu umieść ją z powrotem na swoim miejscu. to rozwiązanie działa dla mniewięcej informacji: React-native-rename
źródło
Idź do studia Android
Kliknij prawym przyciskiem myszy pakiet (najprawdopodobniej com) -> Refractor -> Zmień nazwę -> Wprowadź nową nazwę pakietu w oknie dialogowym -> Do Refractor
Zmieni nazwę twojego pakietu wszędzie.
źródło
Skrypt inicjujący generuje unikalny identyfikator dla Androida na podstawie nadanej mu nazwy (np.
com.acmeapp
DlaAcmeApp
).Możesz zobaczyć, jaka nazwa została wygenerowana, szukając klucza applicationId w
android/app/build.gradle
.Jeśli chcesz zmienić ten unikalny identyfikator, zrób to teraz, jak opisano poniżej:
W
/android
folderze zamień wszystkie wystąpieniacom.acmeapp
bycom.acme.app
Następnie zmień strukturę katalogów za pomocą następujących poleceń:
mkdir android/app/src/main/java/com/acme
mv android/app/src/main/java/com/acmeapp android/app/src/main/java/com/acme/app
Potrzebujesz poziomu folderu dla każdej kropki w identyfikatorze aplikacji.
Źródło: https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/
źródło
Jeśli korzystasz z Android Studio:
zmiana
com.myapp
nacom.mycompany.myapp
utwórz nową hierarchię pakietów com.mycompany.myapp w
android/app/src/main/java
Skopiuj wszystkie klasy z
com.myapp
docom.mycompany.myapp
za pomocą interfejsu GUI Android StudioAndroid studio zadba o umieszczenie odpowiedniej nazwy pakietu dla wszystkich skopiowanych klas. Jest to przydatne, jeśli masz jakieś niestandardowe moduły i nie chcesz ręcznie zastępować wszystkich plików .java.
Zaktualizuj
android/app/src/main/AndroidManifest.xml
iandroid/app/build.gradle
(zamieńcom.myapp
nacom.mycompany.myapp
Synchronizuj projekt (kompilacja Gradle)
źródło
Mam rozwiązanie oparte na odpowiedzi @ Cherniv (dla mnie działa na macOS). Dwie różnice: mam plik Main2Activity.java w folderze java, z którym robię to samo, i nie kłopoczę się wywoływaniem ./gradlew czysto, ponieważ wygląda na to, że program do pakowania natywnego reagowania i tak robi to automatycznie.
W każdym razie moje rozwiązanie robi to, co robi Czerniow, z wyjątkiem tego, że stworzyłem dla niego skrypt powłoki bash, ponieważ tworzę wiele aplikacji przy użyciu jednego zestawu kodu i chcę mieć możliwość łatwej zmiany nazwy pakietu za każdym razem, gdy uruchamiam skrypty npm.
Oto skrypt bash, którego użyłem. Będziesz musiał zmodyfikować nazwę pakietu, którego chcesz użyć, i dodać do niego wszystko, co chcesz ... ale oto podstawy. Możesz utworzyć plik .sh, przyznać mu uprawnienia, a następnie uruchomić go z tego samego folderu, z którego uruchamiasz opcję „React-native”:
ZRZECZENIE SIĘ: Najpierw musisz edytować komentarz MainApplication.java w dolnej części pliku java. W komentarzu znajduje się słowo „pakiet”. Ze względu na sposób działania skryptu pobiera on dowolny wiersz zawierający słowo „pakiet” i zastępuje go. Z tego powodu ten skrypt może nie zostać sprawdzony w przyszłości, ponieważ to samo słowo może być użyte w innym miejscu.
Drugie zastrzeżenie: pierwsze 3 polecenia sed edytują pliki java z katalogu o nazwie javaFiles. Sam utworzyłem ten katalog, ponieważ chcę mieć jeden zestaw plików java, które są stamtąd kopiowane (ponieważ mogę dodać do niego nowe pakiety w przyszłości). Prawdopodobnie będziesz chciał zrobić to samo. Więc skopiuj wszystkie pliki z folderu java (przejdź przez jego podfoldery, aby znaleźć rzeczywiste pliki java) i umieść je w nowym folderze o nazwie javaFiles.
Trzecie zastrzeżenie: musisz edytować zmienną packageName, aby była zgodna ze ścieżkami na górze i na dole skryptu (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)
źródło
W kodzie VS naciśnij
Ctrl + Shift + F
i wprowadź nazwę starego pakietu w polu „Znajdź” i wprowadź nowy pakiet w polu „Zamień”. Następnie naciśnij „Zastąp wszystkie wystąpienia”.Zdecydowanie nie w sposób pragmatyczny. Ale to załatwiło sprawę dla mnie.
źródło
Posługiwać się
npx react-native-rename <newName>
Z niestandardowym identyfikatorem pakietu (tylko Android. W przypadku iOS użyj Xcode)
Najpierw przełącz się na nową gałąź (opcjonalne, ale zalecane)
Następnie zmień nazwę swojej aplikacji $ npx React-native-rename rename „Travel App”
Z niestandardowym identyfikatorem pakietu
Po zmianie nazwy przejdź do folderu Android i uruchom
gradlew clean
. następnie wróć do głównego projektu i uruchomnpx react-native run-android
.Ponadto, jeśli masz plik google-services.json w swoim poprzednim projekcie, zmień go odpowiednio na nowy ... to jesteś gotowy :)
Zobacz więcej tutaj https://github.com/junedomingo/react-native-rename#readme
źródło
Wykonaj proste kroki, aby zmienić nazwę swojego
app name
iPackage name
na wypadek, gdybyś nie wprowadził żadnych niestandardowych zmian w folderze Androida (np. Scenariusz, w którym właśnie zainicjowałeś projekt)name
wpackage.json
pliku według potrzeb i zapisz go.react-native upgrade
Uwaga: Jak wspomniano w komentarzu ivoteje50 , nie usuwaj folderu systemu Android, jeśli wykonałeś już oficjalne instrukcje dotyczące wygenerowania magazynu kluczy, ponieważ spowoduje to usunięcie magazynu kluczy i nie będzie można ponownie podpisać nowej aplikacji.
źródło
Przejdź do Android Studio, otwórz aplikację, kliknij prawym przyciskiem myszy java i wybierz Nowy, a następnie Pakiet.
Podaj żądaną nazwę (np. Com. Coś).
Przenieś pliki z innego pakietu (którego nazwę chcesz zmienić) do nowego pakietu. Usuń stary pakiet.
Przejdź do swojego projektu w edytorze i użyj skrótu do wyszukiwania we wszystkich plikach (na Macu jest to shift cmd F). Wpisz nazwę swojego starego pakietu. Zmień wszystkie odniesienia do nowej nazwy pakietu.
Przejdź do Android Studio, Build, Clean Project, Rebuild Project.
Gotowe!
Miłego kodowania :)
źródło
Użyłem pakietu react-native-rename .
W terminalu uruchom polecenie, aby zainstalować:
W katalogu głównym projektu React Native uruchom następujące polecenie:
źródło
Możesz użyć pakietu react-native-rename, który przejmie wszystkie niezbędne zmiany nazwy pakietu w
app / mainapplication.java
AndroidManifest.xml
ale pamiętaj, aby ręcznie zmienić nazwę pakietu wszystkich plików w folderze java / com. ponieważ kiedy utworzyłem działanie na ekranie powitalnym, stara nazwa pakietu nie jest aktualizowana.
https://www.npmjs.com/package/react-native-rename
źródło
Po prostu skorzystanie z narzędzia wyszukiwania i zamiany w moim IDE załatwiło sprawę.
źródło
Po uruchomieniu tego:
Upewnij się, że również przechodzisz
Build.gradle
podandroid/app/...
i zmieniasz nazwę identyfikatora aplikacji, jak pokazano poniżej:źródło
Przejdź do pliku android / app / src / main / AndroidManifest.xml -
Aktualizacja :
attr android: etykieta aplikacji Element jako:
i
attr android: etykieta aktywności elementu jako:
Pracował dla mnie, mam nadzieję, że pomoże.
źródło