Flutter projesinin Paket Adını değiştirmenin bir yolu var mı?
Flutter projesinde paket adını ve uygulama adını değiştirmek istiyorum.
flutter create --org com.domain app_name
Flutter projesinin Paket Adını değiştirmenin bir yolu var mı?
Flutter projesinde paket adını ve uygulama adını değiştirmek istiyorum.
flutter create --org com.domain app_name
Yanıtlar:
Android Uygulama Adı için
AndroidManifest.xmlDosyanızdaki etiket adını değiştirin :
<application
android:name="io.flutter.app.FlutterApplication"
android:label="TheNameOfYourApp"
Paket Adı İçin
AndroidManifest.xmlDosyanızdaki paket adını değiştirin :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name">
Ayrıca build.gradledosyanızda uygulama klasöründe
defaultConfig {
applicationId "your.package.name"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
Son olarak, MainActivity.javasınıfınızdaki paketi değiştirin (MainActivity.java mevcut değilse, MainActivity.kt'yi kontrol edin)
package your.package.name;
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
Dizin adını değiştirin:
Gönderen:
android\app\src\main\java\com\example\name
Kime:
android\app\src\main\java\your\package\name
DÜZENLENMİŞ: 27 Aralık 18
için paket ismi sadece yapı değişecek build.gradlesadece
defaultConfig {
applicationId "your.package.name"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
İOS için
Paket tanımlayıcısını dizininizdeki Info.plistdosyanızdan değiştirin ios/Runner.
<key>CFBundleIdentifier</key>
<string>com.your.packagename</string>
GÜNCELLEME
Paketi ve paket tanımlayıcısını yeniden adlandırmaktan kaçınmak için, projenizi terminalinizde bu komutu kullanarak başlatabilirsiniz:
flutter create --org com.yourdomain appname
$(PRODUCT_BUNDLE_IDENTIFIER). Bu değişken nerede saklanıyor?
Adı manuel olarak değiştirmek işe yaramıyor gibi görünüyor, kademeli hatalar atıyor, benim durumumda hata veriyor.
Bu yüzden genellikle yeni bir flutter projesi yaratırım.
Yeni bir flutter uygulaması oluşturmak için aşağıda belirtilen komutu kullanıyorum
flutter create --org com.yourdomain appname
projenizin paket adı -> com.yourdomain.appname
sadece paket adınızı korumak istiyorsanız com.appname, aşağıdaki gibi bazı değişiklikler yapın
flutter create --org com appname
yerine java eklemek kotliniçin androideklenti-a java
flutter create -a java --org com.yourdomain appname
Android'de paket adı AndroidManifest'te yer alır:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
package="com.example.appname">
İOS'ta paket adı, Info.plist'teki paket tanımlayıcısıdır:
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
burada bulunan Runner.xcodeproj / project.pbxproj :
PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;
Paket adı birden fazla konumda bulunur, bu nedenle adı değiştirmek için tüm projede eski proje adınızın oluşumlarını araştırmalı ve hepsini değiştirmelisiniz.
Android Studio ve VS Code:
İOS ile ilgili yardım için diegoveloper'a teşekkürler .
Bu sayfaya birkaç farklı kez döndükten sonra, doğru adla yeni bir projeye başlamanın ve ardından eski dosyaları kopyalamanın daha kolay ve daha temiz olduğunu düşünüyorum.
Benim gibi belirli dosyaları değiştirmeyi sevmeyenler için https://pub.dev/packages/rename kullandım .
yükleme: pub global activate rename
Ve sonra koşarak: pub global run rename --bundleId com.example.android.app --target android
Hem ios hem de android için paketi bu şekilde yeniden adlandırdım
applicationId "com.company.name"app/src/mainve yeniden adlandırın package="com.company.name"veandroid:label="App Name"app/src/debug ve yeniden adlandırınpackage="com.company.name"app/src/profile ve yeniden adlandırınpackage="com.company.name"app/src/main/kotlin/com/something/something/MainActivity.kt ve yeniden adlandırpackage="com.company.name"app/src/main/kotlin/Yapının benzer görünmesi için her dizine ve yeniden adlandırınapp/src/main/kotlin/com/company/name/pubspec.yamlprojeniz ve değişimde name: somethingiçin name: nameörneğin,: - paket adı isecom.abc.xyzname: xyzcom.company.nameflutter cleanFlutter Projenizin tüm AndroidManifest.xml dosyalarında değişiklik yapın, -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) ve (app / src / main / AndroidManifest.xml ) ve (app / src / profile / AndroidManifest.xml )
iyi bak !!
Resmi flutter belgelerine göre, sadece ApplicationIdin app/build.gradledizinini değiştirmeniz gerekir . O zaman sadece apk'nizi oluşturmanız gerekir ve manifest dosyasının paket adı, değiştirdiğinize göre ApplicationIddeğişecektir build.gradle. Bir apk oluştururken çarpıntı nedeniyle hem Google Play hem deApplicationId play'i build.gradle'dan düşünün. Bu çözüm benim için çalıştı.
kaynak: Resmi Belgeler
Güncellendi Bu beş konumda paket adını istediğiniz paket adı ile değiştirmeniz gerekir.
1.) src/profile/AndroidManifest.xml
2.) src/debug/AndroidManifest.xml
3.) src/main/AdroidManifest.xml
4.) build.gradle .
defaultConfig {
applicationId
5.) MainActivity.java on "package"
son adım koşmak flutter clean
Bu resmi belgeleri Google'dan takip edebilirsiniz: https://developer.android.com/studio/build/application-id.html
Build.gradle'da uygulama kimliği değiştirilmelidir, paket adı ise AndroidManifest.xml'de değiştirilebilir.
Ancak paket adını değiştirirken dikkatli olunmalıdır.
Ayrıca uygulamayı yeniden yüklerken, önceden yüklenen uygulamanın uygulama kimliğiyle yeni yüklemeyle eşleştiği için dikkatli olunmalıdır.
Android'de uygulama kimliğini değiştirin
> build.gradle
dosya ve iOS değişikliği
> proje ayarlarından paket adı.
Cevabım doğru cevap olarak kabul edilmeyecek olsa bile, yukarıdaki tüm bu cevapların burada daha fazla sorun yaşamama neden olduğunu hissediyorum.
Sonuç: Bu sorunu çözmek için ihtiyacınız olan tek şey basit bir bul ve değiştir programıdır ve bunun için Sublime Text 3'ü şiddetle tavsiye ederim.