Saya biasa react-native init MyApp
menginisialisasi aplikasi React Native baru. Ini dibuat antara lain proyek Android dengan paket com.myapp
.
Apa cara terbaik untuk mengubah nama paket ini, misalnya menjadi com.mycompany.myapp
:?
Saya mencoba mengubahnya AndroidManifest.xml
tetapi ia membuat kesalahan lain, jadi saya menganggap itu bukan jalannya.
Ada ide?
Jawaban:
Saya telah mengganti nama subfolder proyek dari: " android / app / src / main / java / MY / APP / OLD_ID / " ke: " android / app / src / main / java / MY / APP / NEW_ID / "
Kemudian secara manual beralih id paket lama dan baru:
Di: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java :
Di android / app / src / main / java / MY / APP / NEW_ID / MainApplication.java :
Di android / app / src / main / AndroidManifest.xml :
Dan di android / app / build.gradle :
Di android / app / BUCK :
Pembersihan Gradle pada akhirnya (dalam folder / android ):
sumber
android/app/src/main/java/com/old_app_name/
untuk...com/new_app_name/
dan tampaknya bekerja.Saya menggunakan paket react-native-rename * npm. Pasang melalui
Kemudian, dari akar proyek React Native Anda, jalankan yang berikut:
sumber
Untuk mengubah nama paket dari
com.myapp
menjadi:com.mycompany.myapp
(misalnya),android/app
folder. Anda akan menemukanUbah
com.myapp
untuk apa pun yang Anda butuhkan.Semoga ini membantu.
sumber
./gradlew clean
dan kemudian./gradlew app:assembleRelease
.applicationId
danpackage
nama lokal tidak tergantung satu sama lain", "applicationId
mengidentifikasi aplikasi Anda secara unik di perangkat dan di Google Play Store" - developer.android.com/studio/build/application-idNo matching client found for package name 'xxxxx'
Anda hanya dapat menggunakan paket npm reaksi-asli-ganti nama.
Instal menggunakan
npm install react-native-rename -g
Kemudian dari akar proyek React Native Anda, lakukan hal berikut
react-native-rename "MyApp" -b com.mycompany.myapp
react-native-rename on npm
tetapi perhatikan bahwa, lib ini menghapus
MainActivity.java
danMainApplication.java
. sebelum mengubah nama paket Anda, berikan cadangan dari dua file ini dan, setelah mengubah nama paket, kembalikan saja ke tempatnya. solusi ini bekerja untuk sayainfo lebih lanjut: react-native-rename
sumber
Goto Android studio
Klik kanan paket Anda (kemungkinan besar com) -> Refraktor -> Ganti nama -> Masukkan nama paket baru dalam dialog -> Lakukan Refraktor
Ini akan mengubah nama nama paket Anda di mana-mana.
sumber
Skrip init menghasilkan pengidentifikasi unik untuk Android berdasarkan nama yang Anda berikan (mis.
com.acmeapp
UntukAcmeApp
).Anda dapat melihat nama apa yang dihasilkan dengan mencari kunci applicationId
android/app/build.gradle
.Jika Anda perlu mengubah pengenal unik itu, lakukan sekarang seperti yang dijelaskan di bawah ini:
Di
/android
folder, ganti semua kemunculancom.acmeapp
olehcom.acme.app
Kemudian ubah struktur direktori dengan perintah berikut:
mkdir android/app/src/main/java/com/acme
mv android/app/src/main/java/com/acmeapp android/app/src/main/java/com/acme/app
Anda memerlukan level folder untuk setiap titik di pengenal aplikasi.
Sumber: https://blog.elao.com/id/dev/from-react-native-init-to-app-stores-real-quick/
sumber
Jika Anda menggunakan Android Studio-
berubah
com.myapp
menjadicom.mycompany.myapp
buat hierarki paket baru com.mycompany.myapp di bawah
android/app/src/main/java
Salin semua kelas dari
com.myapp
kecom.mycompany.myapp
menggunakan GUI studio AndroidStudio Android akan mengurus menempatkan nama paket yang cocok untuk semua kelas yang disalin. Ini berguna jika Anda memiliki beberapa modul khusus dan tidak ingin mengganti secara manual di semua file .java.
Perbarui
android/app/src/main/AndroidManifest.xml
danandroid/app/build.gradle
(ganticom.myapp
kecom.mycompany.myapp
Sinkronkan proyek (build gradle)
sumber
Saya punya solusi berdasarkan jawaban @ Cherniv (berfungsi pada MacOS untuk saya). Dua perbedaan: Saya memiliki Main2Activity.java di folder java yang saya lakukan hal yang sama, dan saya tidak repot-repot memanggil ./gradlew clean karena sepertinya packager asli-reaksi melakukan itu secara otomatis.
Bagaimanapun, solusi saya melakukan apa yang dilakukan Cherniv, kecuali saya membuat skrip bash shell untuk itu karena saya membangun beberapa aplikasi menggunakan satu set kode dan ingin dapat dengan mudah mengubah nama paket setiap kali saya menjalankan skrip npm saya.
Berikut ini skrip bash yang saya gunakan. Anda harus memodifikasi packageName yang ingin Anda gunakan, dan menambahkan apa pun yang Anda inginkan ... tapi inilah dasarnya. Anda dapat membuat file .sh, memberikan izin, dan kemudian menjalankannya dari folder yang sama dengan tempat Anda menjalankan reaksi asli:
DISCLAIMER: Anda harus mengedit komentar MainApplication.java di dekat bagian bawah file java terlebih dahulu. Itu memiliki kata 'paket' di komentar. Karena cara kerja skrip, dibutuhkan baris apa pun dengan kata 'paket' di dalamnya dan menggantikannya. Karena itu, skrip ini mungkin tidak terbukti di masa depan karena mungkin ada kata yang sama yang digunakan di tempat lain.
Penafian Kedua: 3 sed perintah pertama mengedit file java dari direktori yang disebut javaFiles. Saya membuat direktori ini sendiri karena saya ingin memiliki satu set file java yang disalin dari sana (karena saya mungkin menambahkan paket baru ke sana di masa depan). Anda mungkin ingin melakukan hal yang sama. Jadi salin semua file dari folder java (buka subfoldernya untuk menemukan file java yang sebenarnya) dan letakkan di folder baru yang disebut javaFiles.
Penafian Ketiga: Anda harus mengedit variabel packageName agar sejalan dengan jalur di bagian atas skrip dan bawah (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName)
sumber
Dalam VS Code, tekan
Ctrl + Shift + F
dan masukkan nama paket lama Anda di 'Cari' dan masukkan paket baru Anda di 'Ganti'. Lalu tekan 'Ganti semua kejadian'.Jelas bukan cara pragmatis. Tapi, ini sudah melakukan trik untukku.
sumber
Menggunakan
npx react-native-rename <newName>
Dengan Custom Bundle Identifier (khusus Android. Untuk iOS, silakan gunakan Xcode)
Pertama, Pindah ke cabang baru (opsional tetapi disarankan)
Lalu, Ganti nama aplikasi Anda $ npx react-asli-rename "Travel App"
Dengan Pengidentifikasi Bundel khusus
Setelah Anda mengubah nama, pastikan Anda pergi ke folder android dan jalankan
gradlew clean
. kemudian kembali ke proyek utama dan jalankannpx react-native run-android
.Juga Jika Anda memiliki file google-services.json di proyek Anda sebelumnya, ubah sesuai dengan yang baru ... maka Anda baik-baik saja :)
Lihat Lebih Banyak di sini https://github.com/junedomingo/react-native-rename#readme
sumber
Ikuti langkah-langkah sederhana untuk mengubah nama Anda
app name
danPackage name
jika Anda belum membuat perubahan khusus pada folder android (mis., Skenario di mana Anda baru saja menginisialisasi proyek)name
dalampackage.json
berkas yang Anda butuhkan dan menyimpannya.react-native upgrade
Catatan: Seperti disebutkan ivoteje50 dalam komentar, Jangan menghapus folder android jika Anda telah mengikuti instruksi resmi untuk menghasilkan keystore, karena itu akan menghapus keystore dan Anda tidak dapat menandatangani aplikasi baru lagi.
sumber
Buka Android Studio, buka aplikasi, klik kanan pada java dan pilih Paket Baru dan kemudian.
Beri nama yang Anda inginkan (mis. Com. Sesuatu).
Pindahkan file dari paket lain (Anda ingin mengganti nama) ke Paket baru. Hapus paket lama.
Pergi ke proyek Anda di editor Anda dan gunakan jalan pintas untuk mencari di semua file (pada mac adalah shift cmd F). Ketikkan nama paket lama Anda. Ubah semua referensi ke nama paket baru.
Buka Android Studio, Build, Clean Project, Rebuild Project.
Selesai!
Selamat coding :)
sumber
Saya telah menggunakan paket react-native-rename .
Di terminal jalankan perintah untuk menginstal:
Di root proyek React Native Anda, jalankan perintah berikut:
sumber
Anda dapat menggunakan paket react-native-rename yang akan mengambil semua perubahan yang diperlukan dari nama paket di bawah
app / mainapplication.java
AndroidManifest.xml
tetapi pastikan untuk secara manual mengubah nama paket semua file di bawah folder java / com. karena ketika saya membuat aktivitas layar splash, nama paket lama tidak diperbarui.
https://www.npmjs.com/package/react-native-rename
sumber
Cukup menggunakan alat pencarian dan ganti IDE saya melakukan trik.
sumber
Setelah menjalankan ini:
Pastikan untuk juga kebagian
Build.gradle
bawahandroid/app/...
dan ganti nama Id aplikasi seperti yang ditunjukkan di bawah ini:sumber
Buka file android / app / src / main / AndroidManifest.xml -
Perbarui:
attr android: label aplikasi Elemen sebagai:
dan
attr android: label aktivitas Elemen sebagai:
Bekerja untuk saya, semoga akan membantu.
sumber