Làm thế nào để thay đổi tên gói trong rung?


155

Có cách nào để thay đổi Tên gói của dự án Flutter không?

Tôi muốn thay đổi tên gói và tên ứng dụng trong dự án flutter.


4
Chỉ cần tìm kiếm và thay thế tất cả các lần xuất hiện của tên gói cũ trong tất cả các tệp. Không có lệnh hoặc tương tự để cập nhật tên.
Günter Zöchbauer

3
Khi bạn tạo một dự án mới, bạn có thể chỉ định tên gói vớiflutter create --org com.domain app_name
Victor

Câu trả lời:


284

Đối với tên ứng dụng Android

Thay đổi tên nhãn trong AndroidManifest.xmltệp của bạn :

 <application
    android:name="io.flutter.app.FlutterApplication"
    android:label="TheNameOfYourApp"   

Đối với tên gói

Thay đổi tên gói trong AndroidManifest.xmltệp của bạn :

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

Cũng trong build.gradletập tin của bạn trong thư mục ứng dụng

defaultConfig {
    applicationId "your.package.name"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Cuối cùng, thay đổi gói trong MainActivity.javalớp của bạn (nếu MainActivity.java không có sẵn, hãy kiểm tra 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 {

Thay đổi tên thư mục:

Từ:

  android\app\src\main\java\com\example\name

Đến:

  android\app\src\main\java\your\package\name

EDITED: 27-ngày 18 tháng 12

cho tên gói chỉ cần thay đổi trong xây dựng build.gradlechỉ

defaultConfig {
    applicationId "your.package.name"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Dành cho iOS

Thay đổi định danh gói từ Info.plisttệp của bạn trong ios/Runnerthư mục của bạn .

<key>CFBundleIdentifier</key>
<string>com.your.packagename</string>

CẬP NHẬT

Để tránh đổi tên gói và gói định danh gói, bạn có thể bắt đầu dự án của mình bằng lệnh này trong thiết bị đầu cuối của bạn:

flutter create --org com.yourdomain appname

1
Tôi cũng phải cập nhật tên thư mục bên dưới (thay đổi 'ví dụ' thành 'woods') C: \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ woods \ gearlog
andyw

1
Còn đối với iOS thì sao?
Suragch

9
Định danh bó của tôi là $(PRODUCT_BUNDLE_IDENTIFIER). Đâu là biến ẩn?
Suragch

3
PRODUCT_BUNDLE_IDENTIFIER được lưu trữ ở nhiều nơi trong tệp project.pbxproj thư mục ios / Runner.xcodeproj.
Safa Alai

3
Điều đáng nói là appID phải ở định dạng 3 từ được phân tách bằng dấu chấm.
Raj Krishnan R

23

Thay đổi tên bằng tay dường như không hoạt động, ném lỗi lớp, trong trường hợp của tôi, nó không có lỗi.

Vì vậy, tôi thường tạo ra một dự án rung mới.

Tôi sử dụng lệnh được đề cập dưới đây để tạo một ứng dụng rung mới

flutter create --org com.yourdomain appname

dự án của bạn sẽ có tên gói là -> com.yourdomain.appname


nếu bạn chỉ muốn giữ tên gói của mình com.appnamethì hãy thực hiện một số thay đổi như dưới đây

flutter create --org com appname

để thêm java thay vì kotlincho androidadd-a java

flutter create -a java --org com.yourdomain appname

và nó cũng khá nhanh
Griffin

2
'flutter tạo --org com.yourcompany --project-name new_app_name.' (thêm khoảng thời gian nếu bạn ở trong dự án hiện tại - trước tiên bạn nên dọn rác các thư mục android và ios để chúng được tái tạo). KIẾM MỘT BACKUP nên là một điều kiện tiên quyết quan trọng cho câu trả lời.
Tommie C.

20

Android

Trong Android, tên gói nằm trong AndroidManifest:

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

iOS

Trong iOS, tên gói là số nhận dạng gói trong Info.plist:

<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

được tìm thấy trong Runner.xcodeproj / project.pbxproj :

PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;

Thay đổi tên

Tên gói được tìm thấy ở nhiều hơn một vị trí, vì vậy để thay đổi tên, bạn nên tìm kiếm toàn bộ dự án cho các lần xuất hiện của tên dự án cũ của bạn và thay đổi tất cả.

Android Studio và Mã VS:

  • Mac: Command+ Shift+F
  • Linux / Windows: Ctrl+ Shift+F

Cảm ơn diegigsoper đã giúp đỡ với iOS.

Cập nhật:

Sau khi quay lại trang này một vài lần khác, tôi nghĩ việc bắt đầu một dự án mới với tên đúng và sau đó sao chép các tệp cũ trở nên dễ dàng và sạch sẽ hơn.


19

Thay đổi namethuộc tính trong pubspec.yaml (dòng 1)

Đối với tên của apk, thay đổi android:label trongAndroidManifest.xml


1
Yêu cầu thay đổi MainActivity.java hoặc mainActivity.kt
Epsi95

18

Đối với những người như tôi không muốn thay đổi các tệp cụ thể, tôi đã sử dụng https://pub.dev/packages/rename .

Cài đặt: pub global activate rename

Và sau đó, chạy: pub global run rename --bundleId com.example.android.app --target android


7

Đây là cách tôi đổi tên gói cho cả ios và android

  1. Chuyển đến build.gradle trong mô-đun ứng dụng và đổi tên applicationId "com.company.name"
  2. Truy cập Manifest.xml app/src/mainvà đổi tên package="com.company.name"android:label="App Name"
  3. Truy cập Manifest.xml app/src/debugvà đổi tênpackage="com.company.name"
  4. Truy cập Manifest.xml app/src/profilevà đổi tênpackage="com.company.name"
  5. Đi đến app/src/main/kotlin/com/something/something/MainActivity.ktvà đổi tênpackage="com.company.name"
  6. Đi đến app/src/main/kotlin/và đổi tên từng thư mục để cấu trúc trông giống nhưapp/src/main/kotlin/com/company/name/
  7. Tới pubspec.yamldự án và thay đổi của bạn name: somethingđể name: name, ví dụ: - nếu tên gói là com.abc.xyzcácname: xyz
  8. Chuyển đến từng tệp phi tiêu trong thư mục lib và đổi tên nhập khẩu thành tên đã sửa đổi.
  9. Mở XCode và mở tệp người chạy và nhấp vào Người chạy trong dự án thám hiểm.
  10. Chuyển đến Chung -> nhấp đúp chuột vào Gói nhận dạng -> đổi tên thành com.company.name
  11. Truy cập Info.plist nhấp vào Tên gói -> đổi tên thành Tên ứng dụng của bạn.
  12. đóng mọi thứ -> đi đến dự án rung của bạn và chạy lệnh này trong terminal flutter clean

6

thay đổi trong tất cả các tệp AndroidManifest.xml của Dự án Flutter của bạn, -> gói = "your.name.app " (app / src / debug / AndroidManifest.xml ) và (app / src / main / AndroidManifest.xml ) và (app / src / profile / AndroidManifest.xml )

ưa nhìn !!


Cảm ơn Percy tôi đã đối mặt với vấn đề này, tôi đã tìm thấy câu trả lời của bạn.
Nhà phát triển

3

Đã cập nhật Bạn phải thay đổi tên gói thành tên gói bạn muốn trong năm vị trí này.

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"

bước cuối cùng là chạy flutter clean


3

Trên mã Visual Studio

Chỉnh sửa> Thay thế trong Tệp

mã thay thế trong tập tin

Trên studio Android

1. Nhấp chuột phải vào dự án của bạn> Thay thế trong đường dẫn

thay thế trong đường dẫn

2. Viết gói cũ và gói mới> Thay thế tất cả

thay thế tất cả ảnh chụp màn hình


ồ, bạn là người giỏi nhất
N Sivaram

3

Theo tài liệu rung chính thức, bạn chỉ cần thay đổi ApplicationIdtrong app/build.gradlethư mục. Sau đó, bạn chỉ cần xây dựng apk của mình và tên gói của tệp kê khai sẽ được thay đổi theo ApplicationIdbạn đã thay đổi build.gradle. Bởi vì rung động trong khi xây dựng apk và google chơi cả hai đều xem xét ApplicationIdtừ build.gradle. Giải pháp này đã làm việc cho tôi.

nguồn: Tài liệu chính thức


1

Tôi đã có hai tệp manifest.xml trong phần ứng dụng của mình, vì vậy tôi cần thay đổi tên gói trong cả haiỞ đây bạn có thể thấy


0

Bạn có thể làm theo tài liệu chính thức này của Google: https://developer.android.com/studio/build/application-id.html

ID ứng dụng nên được thay đổi trong Build.gradle, trong khi tên gói có thể được thay đổi trong AndroidManifest.xml.

Tuy nhiên, nên cẩn thận thay đổi tên gói.

Ngoài ra, trong khi tải lên lại ứng dụng, người ta nên cẩn thận vì nó khớp với ID ứng dụng của ứng dụng đã tải lên trước đó với tải lên mới.


0

Trong Android, thay đổi id ứng dụng trong

> build.gradle

thay đổi tệp và iOS

> tên gói từ cài đặt dự án.


0

Ngay cả khi câu trả lời của tôi không được chấp nhận là câu trả lời đúng, tôi chỉ cảm thấy tất cả những câu trả lời trên khiến tôi gặp nhiều vấn đề hơn ở đây là cách tôi sửa nó

  1. Nhận văn bản tuyệt vời (điên, phải không? Không, chỉ cần làm theo các bước của tôi)
  2. Bấm vào tệp và chọn thư mục mở, sau đó chọn thư mục của dự án bạn đang làm việc
  3. Bây giờ, nhấp vào Tìm từ Tab và chọn tìm trong tệp hoặc chỉ thực hiện Ctrl+ Shift+ F (đối với người dùng Windows, đối với người dùng mac mà bạn đã biết máy khoan)
  4. Bây giờ sao chép và dán chính xác tên của gói bạn muốn thay đổi trong phần Tìm và dán vào phần thay thế những gì bạn muốn thay thế tên gói.
  5. Nhấp vào TÌM (không nhấp vào REPLACE).
  6. Bây giờ bấm vào Tìm danh sách tất cả tên gói có sẵn trong dự án của bạn phù hợp với tiêu chí tìm kiếm của bạn, nếu bạn hài lòng với điều này thì lặp lại từ không. 3 nhưng lần này bấm vào REPLACE.
  7. Xây dựng lại dự án của bạn và vui chơi

Kết luận: một chương trình tìm và thay thế đơn giản là tất cả những gì bạn cần để giải quyết vấn đề này và tôi thực sự khuyên bạn nên sử dụng Sublime Text 3 cho điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.