มีวิธีใดในการเปลี่ยนชื่อแพ็กเกจของโครงการ 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: xyz
com.company.name
flutter clean
เปลี่ยนไฟล์AndroidManifest.xmlทั้งหมดของ Flutter Project ของคุณ -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) และ (app / src / main / AndroidManifest.xml ) และ (app / src / โปรไฟล์ / AndroidManifest.xml )
ดูดี !!
ตามเอกสารอย่างเป็นทางการของการกระพือคุณเพียงแค่ต้องเปลี่ยนไดเร็กทอรีApplicationId
in 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 สำหรับสิ่งนั้น