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.xml
Dosyanızdaki etiket adını değiştirin :
<application
android:name="io.flutter.app.FlutterApplication"
android:label="TheNameOfYourApp"
Paket Adı İçin
AndroidManifest.xml
Dosyanızdaki paket adını değiştirin :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name">
Ayrıca build.gradle
dosyanı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.java
sı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.gradle
sadece
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.plist
dosyanı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 kotlin
için android
eklenti-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/main
ve 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.yaml
projeniz ve değişimde name: something
için name: name
örneğin,: - paket adı isecom.abc.xyz
name: xyz
com.company.name
flutter clean
Flutter 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 ApplicationId
in app/build.gradle
dizinini 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 ApplicationId
değ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.