versionCode vs versionName trong Android Manifest


223

Tôi đã có ứng dụng của mình trên thị trường Android với mã phiên bản = 2 và tên phiên bản = 1.1

Tuy nhiên, trong khi cập nhật nó ngày hôm nay, tôi đã thay đổi mã phiên bản = 3 trong tệp kê khai nhưng do nhầm lẫn đã thay đổi tên phiên bản của tôi thành 1.0.1 và tải apk lên thị trường.

Bây giờ, người dùng ứng dụng của tôi có nhận được thông báo cập nhật trên điện thoại của họ hay không? Hay tôi nên làm lại quá trình một lần nữa?


1
hãy thử liên kết này, nó sẽ giúp bạn .. " developer.android.com/tools/publishing/, "
MPG

Họ nên, khi bạn tăng mã phiên bản. Mà trong lý thuyết là một trong những được sử dụng như đánh dấu cập nhật.
siêu người dùng

@ user838522 bạn có thể vui lòng đánh dấu câu trả lời được bình chọn nhiều nhất là câu trả lời được chọn không?
xarlymg89

@ CarlosAlbertoMartínezGadea: user838522 được nhìn thấy lần cuối vào năm 2013
serv-inc

Câu trả lời:


610

liên kết tham khảo

android: phiên bản Mã

Một số phiên bản nội bộ. Số này chỉ được sử dụng để xác định xem một phiên bản có gần đây hơn phiên bản khác hay không, với số cao hơn cho biết các phiên bản gần đây hơn. Đây không phải là số phiên bản hiển thị cho người dùng; số đó được đặt bởi thuộc tính versionName. Giá trị phải được đặt thành một số nguyên, chẳng hạn như "100". Bạn có thể xác định nó theo cách bạn muốn, miễn là mỗi phiên bản kế tiếp có số cao hơn. [...]

android: phiên bản

Tên phiên bản hiển thị cho người dùng. Thuộc tính này có thể được đặt thành một chuỗi thô hoặc làm tham chiếu đến tài nguyên chuỗi. Chuỗi không có mục đích nào khác ngoài việc hiển thị cho người dùng. Thuộc tính versionCode giữ số phiên bản quan trọng được sử dụng trong nội bộ.

Đọc rằng khá rõ ràng rằng versionName chỉ là thứ được hiển thị cho người dùng, versionCode mới là vấn đề quan trọng. Chỉ cần tiếp tục tăng nó và mọi thứ nên được tốt.


1
Điều đó có nghĩa là không có mối quan hệ toán học giữa cả hai. Là nó?
Vinil Chandran

Điều đó giải thích các cập nhật im lặng dường như là cùng một phiên bản.
E. Sundin

11
Chỉ để thêm một ghi chú: Giá trị lớn nhất mà Google Play cho phép cho phiên bản Mã là 2100000000
Atul

1
Có bắt buộc phải xác định sự khác biệt về mã phiên bản giữa vesrion được cập nhật và phiên bản ứng dụng trước đó trong cửa hàng play là 1 không?
Sivaram Boina

@sivaram Không. Hoàn toàn không.
Không biết

30

Không cần phải đảo ngược các bước của bạn. Khi bạn tăng VersionCode, điều đó có nghĩa là ứng dụng của bạn đã được nâng cấp. VersionName chỉ là một chuỗi được trình bày cho người dùng để người dùng dễ đọc. Google play không thực hiện bất kỳ hành động nào tùy thuộc vào VersionName.


9

Mã phiên bản được sử dụng bởi cửa hàng google play để cập nhật mới. Và tên phiên bản được hiển thị cho người dùng. Nếu bạn đã tăng mã phiên bản thì cập nhật sẽ hiển thị cho tất cả người dùng.

Để biết thêm thông tin chi tiết, bạn dành 2 phút để đọc bài viết này https://developer.android.com/studio/publish/versioning.html


6

Tôi sẽ cung cấp cho bạn giải thích của tôi về tài liệu duy nhất tôi có thể tìm thấy về chủ đề này.

"ví dụ để kiểm tra mối quan hệ nâng cấp hoặc hạ cấp." <- Bạn có thể hạ cấp một ứng dụng.

"bạn nên đảm bảo rằng mỗi bản phát hành liên tiếp của ứng dụng của bạn sử dụng giá trị lớn hơn. Hệ thống không thực thi hành vi này" <- Số lượng thực sự sẽ tăng, nhưng bạn vẫn có thể hạ cấp ứng dụng.

android: versionCode - Một giá trị nguyên đại diện cho phiên bản của mã ứng dụng, liên quan đến các phiên bản khác. Giá trị là một số nguyên để các ứng dụng khác có thể lập trình đánh giá nó, ví dụ để kiểm tra mối quan hệ nâng cấp hoặc hạ cấp. Bạn có thể đặt giá trị thành bất kỳ số nguyên nào bạn muốn, tuy nhiên bạn nên đảm bảo rằng mỗi lần phát hành liên tiếp của ứng dụng của bạn sử dụng một giá trị lớn hơn. Hệ thống không thực thi hành vi này, nhưng việc tăng giá trị với các bản phát hành liên tiếp là quy phạm. Thông thường, bạn sẽ phát hành phiên bản đầu tiên của ứng dụng của mình với versionCode được đặt thành 1, sau đó tăng giá trị một cách đơn điệu với mỗi bản phát hành, bất kể bản phát hành đó tạo thành bản phát hành chính hay phụ. Điều này có nghĩa là Android: phiên bản valueCode không nhất thiết phải có sự tương đồng mạnh mẽ với phiên bản phát hành ứng dụng mà người dùng có thể nhìn thấy (xem android: versionName, bên dưới). Các ứng dụng và dịch vụ xuất bản không được hiển thị giá trị phiên bản này cho người dùng.


2
Vì vậy, tôi có thể để nó ở đây? Bởi vì tôi nghĩ hệ thống Android kiểm tra các bản cập nhật ứng dụng dựa trên Mã phiên bản thay vì số phiên bản. Sửa tôi nếu tôi sai.
dùng838522

5

android: versionCode - Một giá trị nguyên đại diện cho phiên bản của mã ứng dụng, liên quan đến các phiên bản khác.

Giá trị là một số nguyên để các ứng dụng khác có thể lập trình đánh giá nó, ví dụ để kiểm tra mối quan hệ nâng cấp hoặc hạ cấp. Bạn có thể đặt giá trị thành bất kỳ số nguyên nào bạn muốn, tuy nhiên bạn nên đảm bảo rằng mỗi lần phát hành liên tiếp của ứng dụng của bạn sử dụng một giá trị lớn hơn. Hệ thống không thực thi hành vi này, nhưng việc tăng giá trị với các bản phát hành liên tiếp là quy phạm.

android: versionName - Một giá trị chuỗi đại diện cho phiên bản phát hành của mã ứng dụng, vì nó sẽ được hiển thị cho người dùng.

Giá trị là một chuỗi để bạn có thể mô tả phiên bản ứng dụng dưới dạng .. chuỗi hoặc như bất kỳ loại định danh phiên bản tuyệt đối hoặc tương đối nào khác.

Như với android: versionCode, hệ thống không sử dụng giá trị này cho bất kỳ mục đích nội bộ nào, ngoài việc cho phép các ứng dụng hiển thị nó cho người dùng. Dịch vụ xuất bản cũng có thể trích xuất giá trị android: versionName để hiển thị cho người dùng.

Thông thường, bạn sẽ phát hành phiên bản đầu tiên của ứng dụng của mình với versionCode được đặt thành 1, sau đó tăng giá trị một cách đơn điệu với mỗi bản phát hành, bất kể bản phát hành đó tạo thành bản phát hành chính hay phụ. Điều này có nghĩa là giá trị android: versionCode không nhất thiết phải giống với phiên bản phát hành ứng dụng mà người dùng có thể nhìn thấy (xem android: versionName, bên dưới). Các ứng dụng và dịch vụ xuất bản không được hiển thị giá trị phiên bản này cho người dùng.


5

Nó thực sự dựa trên versionCode chứ không phải trên versionName. Tuy nhiên, tôi nhận thấy rằng việc thay đổi phiên bản Mã trong AndroidManifest.xml là không đủ với Android Studio - Hệ thống xây dựng Gradle. Tôi cần phải thay đổi nó trong build.gradle.


5

Mã phiên bản Đại diện Phiên bản mã của bạn, hệ điều hành Android kiểm tra cập nhật bằng cách sử dụng biến này cho dù mã này cũ hay mới.

Tên phiên bản Tên đại diện của phiên bản ở định dạng-

(Chính). (Nhỏ). (Điểm)

Chuỗi, chỉ được sử dụng cho chuỗi có thể đọc được, mã phiên bản chức năng đã được HĐH sử dụng.


5

Mã phiên bản - Đó là một số nguyên dương được sử dụng để so sánh với các mã phiên bản khác. Nó không được hiển thị cho người dùng, nó chỉ để lưu giữ hồ sơ theo cách. Bạn có thể đặt nó thành bất kỳ số nguyên nào bạn thích nhưng đề nghị bạn tăng tuyến tính cho các phiên bản kế tiếp.

Tên phiên bản - Đây là chuỗi phiên bản mà người dùng nhìn thấy. Nó không được sử dụng để so sánh nội bộ hoặc bất cứ điều gì, nó chỉ cho người dùng xem.

Ví dụ : Giả sử bạn phát hành một ứng dụng, phiên bản ban đầu của nó có thể là 1 và versionName cũng có thể là 1. Khi bạn thực hiện một số thay đổi nhỏ cho ứng dụng và muốn xuất bản bản cập nhật, bạn sẽ đặt versionName thành "1.1" (vì các thay đổi không phải là chính) trong khi về mặt logic, Mã phiên bản của bạn phải là 2 (bất kể kích thước thay đổi).

Nói trong một điều kiện khác, bạn phát hành phiên bản ứng dụng được tân trang lại hoàn toàn, bạn có thể đặt versionCode và versionName thành "2".

Mong rằng sẽ giúp.

Bạn có thể đọc thêm về nó ở đây


0

Cho số phiên bản MAJOR.MINOR.PATCH, tăng:


  • Phiên bản CHÍNH khi bạn thực hiện các thay đổi API không tương thích,
  • Phiên bản MINOR khi bạn thêm chức năng theo cách tương thích ngược và
  • Phiên bản PATCH khi bạn thực hiện sửa lỗi tương thích ngược.

Mã phiên bản & Tên phiên bản

Như bạn có thể biết, trên Android, bạn phải xác định hai trường phiên bản cho một ứng dụng: mã phiên bản (android: versionCode) và tên phiên bản (android: versionName). Mã phiên bản là một giá trị nguyên tăng dần đại diện cho phiên bản của mã ứng dụng. Tên phiên bản là một giá trị chuỗi đại diện cho tên phiên bản thân thiện của Pháp được hiển thị cho người dùng.


0

Câu trả lời từ Tanoh có thể sử dụng một số làm rõ. VersionCode tương đương với số bản dựng. Vì vậy, thông thường một ứng dụng sẽ trải qua nhiều lần lặp lại trước khi phát hành. Một số lần lặp này có thể xuất hiện trên cửa hàng Google Play ở dạng alpha, beta và các bản phát hành thực tế. Mỗi lần lặp lại phải có một Mã phiên bản tăng dần. Tuy nhiên, thông thường bạn chỉ tăng versionName khi giữa các bản phát hành công khai. Cả hai con số đều có ý nghĩa. Người dùng của bạn cần biết phiên bản họ có trên điện thoại của họ có phải là phiên bản mới nhất hay không (phiên bản Tên) và các hệ thống Play Store và CI như bitawn dựa vào và / hoặc cập nhật số bản dựng (versionCode)

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.