มีวิธีใดในการเปลี่ยนชื่อแพ็กเกจของโครงการ Flutter หรือไม่?
ฉันต้องการเปลี่ยนชื่อแพ็กเกจและชื่อแอปพลิเคชันในโครงการ Flutter
flutter create --org com.domain app_name
มีวิธีใดในการเปลี่ยนชื่อแพ็กเกจของโครงการ Flutter หรือไม่?
ฉันต้องการเปลี่ยนชื่อแพ็กเกจและชื่อแอปพลิเคชันในโครงการ Flutter
flutter create --org com.domain app_name
คำตอบ:
สำหรับชื่อแอป Android
เปลี่ยนชื่อป้ายกำกับในAndroidManifest.xmlไฟล์ของคุณ:
<application
android:name="io.flutter.app.FlutterApplication"
android:label="TheNameOfYourApp"
สำหรับชื่อแพ็กเกจ
เปลี่ยนชื่อแพ็กเกจในAndroidManifest.xmlไฟล์ของคุณ:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name">
นอกจากนี้ในbuild.gradleไฟล์ของคุณภายในโฟลเดอร์แอพ
defaultConfig {
applicationId "your.package.name"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
สุดท้ายเปลี่ยนแพ็คเกจในMainActivity.javaชั้นเรียนของคุณ(ถ้า MainActivity.java ไม่พร้อมใช้งานให้ตรวจสอบ MainActivity.kt)
package your.package.name;
import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
เปลี่ยนชื่อไดเร็กทอรี:
จาก:
android\app\src\main\java\com\example\name
ถึง:
android\app\src\main\java\your\package\name
แก้ไข: 27 ธ.ค. 61
สำหรับชื่อแพ็กเกจเพียงแค่เปลี่ยนในบิลด์build.gradleเท่านั้น
defaultConfig {
applicationId "your.package.name"
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
สำหรับ iOS
เปลี่ยนตัวระบุบันเดิลจากInfo.plistไฟล์ของคุณภายในios/Runnerไดเร็กทอรีของคุณ
<key>CFBundleIdentifier</key>
<string>com.your.packagename</string>
UPDATE
เพื่อหลีกเลี่ยงการเปลี่ยนชื่อแพ็กเกจและตัวระบุบันเดิลคุณสามารถเริ่มโปรเจ็กต์ของคุณโดยใช้คำสั่งนี้ในเทอร์มินัลของคุณ:
flutter create --org com.yourdomain appname
$(PRODUCT_BUNDLE_IDENTIFIER)บ่งชี้กลุ่มของฉันคือ ตัวแปรนั้นซ่อนอยู่ที่ไหน?
การเปลี่ยนชื่อด้วยตนเองดูเหมือนจะไม่ได้ผลทำให้เกิดข้อผิดพลาดในการไล่ระดับสีในกรณีของฉันมันไม่เกิดข้อผิดพลาด
ดังนั้นฉันมักจะสร้างโครงการกระพือปีกใหม่
ฉันใช้คำสั่งที่กล่าวถึงด้านล่างเพื่อสร้างแอพพลิเคชั่นใหม่
flutter create --org com.yourdomain appname
โครงการของคุณจะมีชื่อแพ็กเกจเป็น -> com.yourdomain.appname
หากคุณต้องการเก็บชื่อแพ็กเกจของคุณไว้ให้com.appnameทำการเปลี่ยนแปลงดังต่อไปนี้
flutter create --org com appname
เพื่อเพิ่ม java แทนkotlinการandroidเพิ่ม-a java
flutter create -a java --org com.yourdomain appname
ใน Android ชื่อแพ็กเกจอยู่ใน AndroidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
package="com.example.appname">
ใน iOS ชื่อแพ็กเกจคือตัวระบุบันเดิลใน Info.plist:
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
ซึ่งพบในRunner.xcodeproj / project.pbxproj :
PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;
พบชื่อแพ็กเกจในสถานที่มากกว่าหนึ่งแห่งดังนั้นในการเปลี่ยนชื่อคุณควรค้นหาทั้งโปรเจ็กต์เพื่อหาชื่อโปรเจ็กต์เก่าของคุณและเปลี่ยนทั้งหมด
Android Studio และ VS Code:
ขอบคุณdiegoveloperสำหรับความช่วยเหลือเกี่ยวกับ iOS
หลังจากกลับมาที่หน้านี้หลายครั้งฉันคิดว่าการเริ่มโปรเจ็กต์ใหม่ด้วยชื่อที่ถูกต้องนั้นง่ายและสะอาดกว่าจากนั้นคัดลอกไฟล์เก่า ๆ
เปลี่ยนnameแอตทริบิวต์ในpubspec.yaml (บรรทัดที่ 1)
สำหรับชื่อ apk ให้เปลี่ยนandroid:label ในAndroidManifest.xml
สำหรับผู้ที่ไม่ชอบเปลี่ยนไฟล์บางไฟล์ฉันใช้https://pub.dev/packages/rename https://pub.dev/packages/rename
การติดตั้ง: pub global activate rename
จากนั้นรัน: pub global run rename --bundleId com.example.android.app --target android
นี่คือวิธีที่ฉันเปลี่ยนชื่อแพ็คเกจสำหรับทั้ง iOS และ Android
applicationId "com.company.name"app/src/mainและเปลี่ยนชื่อpackage="com.company.name"และandroid:label="App Name"app/src/debugและเปลี่ยนชื่อpackage="com.company.name"app/src/profileและเปลี่ยนชื่อpackage="com.company.name"app/src/main/kotlin/com/something/something/MainActivity.ktและเปลี่ยนชื่อpackage="com.company.name"app/src/main/kotlin/และเปลี่ยนชื่อไดเร็กทอรีแต่ละรายการเพื่อให้โครงสร้างมีลักษณะดังนี้app/src/main/kotlin/com/company/name/pubspec.yamlในโปรเจ็กต์ของคุณและเปลี่ยนname: somethingเป็นname: nameตัวอย่าง: - หากชื่อแพ็กเกจเป็นcom.abc.xyzไฟล์name: xyzcom.company.nameflutter cleanเปลี่ยนไฟล์AndroidManifest.xmlทั้งหมดของ Flutter Project ของคุณ -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) และ (app / src / main / AndroidManifest.xml ) และ (app / src / โปรไฟล์ / AndroidManifest.xml )
ดูดี !!
ตามเอกสารอย่างเป็นทางการของการกระพือคุณเพียงแค่ต้องเปลี่ยนไดเร็กทอรีApplicationIdin app/build.gradleแล้วคุณจะต้องเพียงแค่สร้าง apk และชื่อแพคเกจของไฟล์ manifest ของคุณจะเปลี่ยนไปตามที่คุณเปลี่ยนในApplicationId build.gradleเนื่องจากการกระพือปีกในขณะที่สร้าง apk และ Google Play ทั้งคู่พิจารณาApplicationIdจาก build.gradle วิธีนี้ใช้ได้ผลสำหรับฉัน
ที่มา: เอกสารอย่างเป็นทางการ
อัปเดตคุณต้องเปลี่ยนชื่อแพ็กเกจเป็นชื่อแพ็กเกจที่คุณต้องการในตำแหน่งที่ตั้งทั้งห้านี้
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"
ขั้นตอนสุดท้ายคือการเรียกใช้ flutter clean
บนรหัส Visual Studio
แก้ไข> แทนที่ในไฟล์
บน Android Studio
1. คลิกขวาที่โครงการของคุณ> แทนที่ในเส้นทาง
2. เขียนแพ็คเกจเก่าและแพ็คเกจใหม่> แทนที่ทั้งหมด
คุณสามารถติดตามเอกสารอย่างเป็นทางการนี้จาก Google: https://developer.android.com/studio/build/application-id.html
ควรเปลี่ยนรหัสแอปพลิเคชันใน Build.gradle ในขณะที่ชื่อแพ็กเกจสามารถเปลี่ยนได้ใน AndroidManifest.xml
อย่างไรก็ตามควรระมัดระวังในการเปลี่ยนชื่อแพ็คเกจ
นอกจากนี้ในขณะที่อัปโหลดแอปอีกครั้งหนึ่งควรระมัดระวังเนื่องจากตรงกับรหัสแอปพลิเคชันของแอปที่อัปโหลดก่อนหน้านี้กับการอัปโหลดใหม่
ใน Android ให้เปลี่ยนรหัสแอปพลิเคชันใน
> build.gradle
ไฟล์และ iOS เปลี่ยนไป
> ชื่อกลุ่มจากการตั้งค่าโครงการ
แม้ว่าคำตอบของฉันจะไม่ได้รับการยอมรับว่าเป็นคำตอบที่ถูกต้อง แต่ฉันรู้สึกว่าคำตอบทั้งหมดข้างต้นทำให้ฉันมีปัญหามากขึ้นนี่คือวิธีที่ฉันแก้ไข
สรุป: โปรแกรมค้นหาและแทนที่อย่างง่ายคือสิ่งที่คุณต้องใช้ในการแก้ปัญหานี้และฉันขอแนะนำ Sublime Text 3 สำหรับสิ่งนั้น