จะเปลี่ยนชื่อแพ็คเกจใน Flutter ได้อย่างไร?


160

มีวิธีใดในการเปลี่ยนชื่อแพ็กเกจของโครงการ Flutter หรือไม่?

ฉันต้องการเปลี่ยนชื่อแพ็กเกจและชื่อแอปพลิเคชันในโครงการ Flutter


4
เพียงค้นหาและแทนที่ชื่อแพ็กเกจเก่าทั้งหมดที่เกิดขึ้นในไฟล์ทั้งหมด ยังไม่มีคำสั่งหรือคล้ายกับการอัปเดตชื่อ
GünterZöchbauer

3
เมื่อคุณสร้างโครงการใหม่คุณสามารถระบุชื่อแพ็กเกจด้วยflutter create --org com.domain app_name
วิกเตอร์

คำตอบ:


289

สำหรับชื่อแอป 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

1
ฉันต้องอัปเดตชื่อไดเรกทอรีด้านล่างด้วย (เปลี่ยน 'ตัวอย่าง' เป็น 'ป่า') C: \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ woods \ gearlog
andyw

1
แล้วสำหรับ iOS ล่ะ?
Suragch

10
$(PRODUCT_BUNDLE_IDENTIFIER)บ่งชี้กลุ่มของฉันคือ ตัวแปรนั้นซ่อนอยู่ที่ไหน?
Suragch

3
PRODUCT_BUNDLE_IDENTIFIER ถูกเก็บไว้หลายที่ในไฟล์ project.pbxproj ไดเร็กทอรี ios / Runner.xcodeproj
Safa Alai

3
เป็นมูลค่าการกล่าวขวัญว่า appID ต้องอยู่ในรูปแบบของ 3 คำที่คั่นด้วยจุด
Raj Krishnan R

24

การเปลี่ยนชื่อด้วยตนเองดูเหมือนจะไม่ได้ผลทำให้เกิดข้อผิดพลาดในการไล่ระดับสีในกรณีของฉันมันไม่เกิดข้อผิดพลาด

ดังนั้นฉันมักจะสร้างโครงการกระพือปีกใหม่

ฉันใช้คำสั่งที่กล่าวถึงด้านล่างเพื่อสร้างแอพพลิเคชั่นใหม่

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

และมันก็ค่อนข้างเร็วเช่นกัน
กริฟฟิน

2
'flutter create --org com.yourcompany --project-name new_app_name' (เพิ่มช่วงเวลาหากคุณอยู่ในโปรเจ็กต์ที่มีอยู่ - คุณควรทิ้งโฟลเดอร์ android และ ios ก่อนเพื่อสร้างใหม่) การสำรองข้อมูลควรเป็นข้อกำหนดเบื้องต้นที่สำคัญสำหรับคำตอบ
ทอมมีซี

21

Android

ใน Android ชื่อแพ็กเกจอยู่ใน AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    package="com.example.appname">

iOS

ใน 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:

  • Mac: Command+ Shift+F
  • ลินุกซ์ / Windows: Ctrl+ Shift+F

ขอบคุณdiegoveloperสำหรับความช่วยเหลือเกี่ยวกับ iOS

ปรับปรุง:

หลังจากกลับมาที่หน้านี้หลายครั้งฉันคิดว่าการเริ่มโปรเจ็กต์ใหม่ด้วยชื่อที่ถูกต้องนั้นง่ายและสะอาดกว่าจากนั้นคัดลอกไฟล์เก่า ๆ


19

เปลี่ยนnameแอตทริบิวต์ในpubspec.yaml (บรรทัดที่ 1)

สำหรับชื่อ apk ให้เปลี่ยนandroid:label ในAndroidManifest.xml


1
MainActivity.java หรือ mainActivity.kt จำเป็นต้องมีการเปลี่ยนแปลง
Epsi95

19

สำหรับผู้ที่ไม่ชอบเปลี่ยนไฟล์บางไฟล์ฉันใช้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


8

นี่คือวิธีที่ฉันเปลี่ยนชื่อแพ็คเกจสำหรับทั้ง iOS และ Android

  1. ไปที่ build.gradle ในโมดูลแอพและเปลี่ยนชื่อ applicationId "com.company.name"
  2. ไปที่ Manifest.xml ในapp/src/mainและเปลี่ยนชื่อpackage="com.company.name"และandroid:label="App Name"
  3. ไปที่ Manifest.xml app/src/debugและเปลี่ยนชื่อpackage="com.company.name"
  4. ไปที่ Manifest.xml app/src/profileและเปลี่ยนชื่อpackage="com.company.name"
  5. ไปที่app/src/main/kotlin/com/something/something/MainActivity.ktและเปลี่ยนชื่อpackage="com.company.name"
  6. ไปที่app/src/main/kotlin/และเปลี่ยนชื่อไดเร็กทอรีแต่ละรายการเพื่อให้โครงสร้างมีลักษณะดังนี้app/src/main/kotlin/com/company/name/
  7. ไปที่pubspec.yamlในโปรเจ็กต์ของคุณและเปลี่ยนname: somethingเป็นname: nameตัวอย่าง: - หากชื่อแพ็กเกจเป็นcom.abc.xyzไฟล์name: xyz
  8. ไปที่ไฟล์ dart แต่ละไฟล์ในโฟลเดอร์ lib และเปลี่ยนชื่อการนำเข้าเป็นชื่อที่แก้ไข
  9. เปิด XCode และเปิดไฟล์นักวิ่งและคลิกที่ Runner ใน project explorer
  10. ไปที่ General -> ดับเบิลคลิกที่ Bundle Identifier -> เปลี่ยนชื่อเป็น com.company.name
  11. ไปที่ Info.plist คลิกที่ชื่อ Bundle -> เปลี่ยนชื่อเป็นชื่อแอปของคุณ
  12. ปิดทุกอย่าง -> ไปที่โครงการ flutter ของคุณและเรียกใช้คำสั่งนี้ในเทอร์มินัล flutter clean

6

เปลี่ยนไฟล์AndroidManifest.xmlทั้งหมดของ Flutter Project ของคุณ -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) และ (app / src / main / AndroidManifest.xml ) และ (app / src / โปรไฟล์ / AndroidManifest.xml )

ดูดี !!


ขอบคุณ Percy ฉันประสบปัญหานี้ฉันพบคำตอบของคุณ
พัฒนา

4

ตามเอกสารอย่างเป็นทางการของการกระพือคุณเพียงแค่ต้องเปลี่ยนไดเร็กทอรีApplicationIdin app/build.gradleแล้วคุณจะต้องเพียงแค่สร้าง apk และชื่อแพคเกจของไฟล์ manifest ของคุณจะเปลี่ยนไปตามที่คุณเปลี่ยนในApplicationId build.gradleเนื่องจากการกระพือปีกในขณะที่สร้าง apk และ Google Play ทั้งคู่พิจารณาApplicationIdจาก build.gradle วิธีนี้ใช้ได้ผลสำหรับฉัน

ที่มา: เอกสารอย่างเป็นทางการ


3

อัปเดตคุณต้องเปลี่ยนชื่อแพ็กเกจเป็นชื่อแพ็กเกจที่คุณต้องการในตำแหน่งที่ตั้งทั้งห้านี้

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


3

บนรหัส Visual Studio

แก้ไข> แทนที่ในไฟล์

เทียบกับรหัสแทนที่ในไฟล์

บน Android Studio

1. คลิกขวาที่โครงการของคุณ> แทนที่ในเส้นทาง

แทนที่ในเส้นทาง

2. เขียนแพ็คเกจเก่าและแพ็คเกจใหม่> แทนที่ทั้งหมด

แทนที่ภาพหน้าจอทั้งหมด


omg คุณดีที่สุด
N Sivaram

1

ฉันมีไฟล์ manifest.xml สองไฟล์ในส่วนแอปของฉันดังนั้นฉันจึงจำเป็นต้องเปลี่ยนชื่อแพ็คเกจในทั้งสองไฟล์คุณสามารถดูได้ที่นี่


0

คุณสามารถติดตามเอกสารอย่างเป็นทางการนี้จาก Google: https://developer.android.com/studio/build/application-id.html

ควรเปลี่ยนรหัสแอปพลิเคชันใน Build.gradle ในขณะที่ชื่อแพ็กเกจสามารถเปลี่ยนได้ใน AndroidManifest.xml

อย่างไรก็ตามควรระมัดระวังในการเปลี่ยนชื่อแพ็คเกจ

นอกจากนี้ในขณะที่อัปโหลดแอปอีกครั้งหนึ่งควรระมัดระวังเนื่องจากตรงกับรหัสแอปพลิเคชันของแอปที่อัปโหลดก่อนหน้านี้กับการอัปโหลดใหม่



0

แม้ว่าคำตอบของฉันจะไม่ได้รับการยอมรับว่าเป็นคำตอบที่ถูกต้อง แต่ฉันรู้สึกว่าคำตอบทั้งหมดข้างต้นทำให้ฉันมีปัญหามากขึ้นนี่คือวิธีที่ฉันแก้ไข

  1. รับ Sublime Text (บ้าใช่ไหมไม่เพียงทำตามขั้นตอนของฉัน)
  2. คลิกที่ไฟล์และเลือกเปิดโฟลเดอร์จากนั้นเลือกโฟลเดอร์ของโครงการที่คุณกำลังดำเนินการ
  3. ตอนนี้คลิกที่ค้นหาจากแท็บและเลือกค้นหาในไฟล์หรือเพียงแค่ทำCtrl+ Shift+ F (สำหรับผู้ใช้ Windows สำหรับผู้ใช้ Mac ที่คุณรู้จักการเจาะลึกอยู่แล้ว)
  4. ตอนนี้คัดลอกและวางชื่อของแพ็คเกจที่คุณต้องการเปลี่ยนในส่วนค้นหาและวางในส่วนแทนที่สิ่งที่คุณต้องการแทนที่ชื่อแพ็กเกจ
  5. คลิกที่ FIND (อย่าคลิกที่ REPLACE ในตอนนี้)
  6. ตอนนี้คลิกที่ค้นหาแสดงรายการชื่อแพ็คเกจที่มีอยู่ทั้งหมดในโครงการของคุณซึ่งตรงกับเกณฑ์การค้นหาของคุณหากคุณพอใจกับสิ่งนี้ให้ทำซ้ำจากที่ไม่ 3 แต่คราวนี้คลิกที่ REPLACE
  7. สร้างโครงการของคุณใหม่และสนุก

สรุป: โปรแกรมค้นหาและแทนที่อย่างง่ายคือสิ่งที่คุณต้องใช้ในการแก้ปัญหานี้และฉันขอแนะนำ Sublime Text 3 สำหรับสิ่งนั้น


จำเป็นต้องอัปเดตเส้นทางไฟล์ตามที่ @diegoveloper แนะนำในคำตอบของเขา โดยการค้นหาเราไม่สามารถค้นหาเส้นทางได้
Rahmat Ali
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.