2011-01-06 50 views
9

Trong khi nâng cấp ứng dụng Android của tôi, tôi đã thay đổi tên gói. Nhưng thị trường Android không cho phép tải lên ứng dụng tên gói đã thay đổi dưới dạng bản nâng cấp. Nếu tôi tải ứng dụng lên dưới dạng ứng dụng mới, người dùng sẽ có hai ứng dụng trên thiết bị của anh ấy/cô ấy? Làm cách nào để đảm bảo rằng người dùng không phải tải lại ứng dụng từ đầu mà không hoàn nguyên thay đổi tên gói của tôi?Thay đổi tên gói của ứng dụng Android được nâng cấp

Trả lời

12

hai gói = hai ứng dụng khác nhau trên thị trường. Sau khi bạn tải lên một ứng dụng, gói của ứng dụng phải giống nhau. Ngoài ra, chìa khóa phải giống nhau.

+0

Tôi đã sử dụng cùng một khóa, nhưng tên gói khác nhau cho ứng dụng được tải lên đầu tiên của tôi. – yogsma

+0

bạn không thể thay đổi tên gói chính. Nếu bạn làm như vậy, nó không thể được coi là ứng dụng tương tự. –

+0

Tôi không chắc chắn lý do tại sao bạn phải thay đổi gói sau khi bạn xuất bản ứng dụng. Bạn nên suy nghĩ lại về quyết định thay đổi tên gói. Nếu không thể, sau đó quên (và đặt một liên kết đến ứng dụng mới trong mô tả thị trường?) Các ứng dụng cũ. –

10

Thị trường Android chỉ quan tâm đến tên gói trong tệp kê khai của bạn chứ không phải tên gói thực tế trong nguồn.

Bạn có thể cố gắng để cung cấp cho các tên gói cũ trong các thuộc tính biểu hiện, sau đó cho các hoạt động cung cấp cho các tên gói mới thay vì tương đối (tức là .MainActivity)

Như thế này:

<manifest package="your.old.package" ...> 
    ... 
    <application android:name="your.new.package.MainActivity" ...> 

thể làm việc ..

Tôi dự định phân phối hai phiên bản ứng dụng của tôi (được trả tiền/miễn phí) theo cách này và sử dụng cùng một dự án và mã.

+0

thú vị !! Tôi sẽ thử ứng dụng tiếp theo của mình. – yogsma

+0

Bạn đúng, Tapirboy. Android không quan tâm đến thuộc tính tên mà bạn đặt trong thẻ Hoạt động của mình; nó chỉ quan tâm đến thuộc tính gói của thẻ kê khai của bạn, cho đến nay khi xác định danh tính của ứng dụng của bạn là có liên quan. Nếu thuộc tính gói của thẻ kê khai được thay đổi, thì Android sẽ xem xét ứng dụng có thay đổi đó là một ứng dụng hoàn toàn khác. – Carl

+1

Tôi mơ hồ nhớ lại một số vấn đề với plugin Eclipse nếu gói kê khai và tên ứng dụng khác nhau. Điều này có thể không còn là vấn đề nữa, nhưng tôi nhất định phải vật lộn với Eclipse khi sử dụng phương pháp này. Đó là cách đây hơn một năm. – Jeff

0

Nếu bạn thay đổi tên gói, nó được coi là một ứng dụng riêng biệt - không chỉ trên thị trường, mà nói chung APK sẽ chỉ 'thay thế' cùng tên gói (và chỉ khi cả hai đều được ký bằng cùng một khóa).

Mặc dù có thể chuyển sang khóa mới bằng cách ký gói trung gian with both keys, hiện tại không có cách nào dễ dàng để pha qua tên gói.

Điều tốt nhất mà có thể được thực hiện là:

  • phiên bản apk mới được ký kết với chìa khóa giống nhau, nhưng có một cái tên gói khác nhau.
  • Khi được cài đặt, gói ứng dụng mới sắp xếp để sử dụng shared_prefs với tên gói cũ.
  • Dữ liệu được sao chép sang tên gói mới.
  • Phiên bản mới yêu cầu phiên bản cũ bị xóa và người dùng sẽ thấy hộp thoại gỡ cài đặt.

Lưu ý ứng dụng dữ liệu thường được giữ ở đây:

/data/data/pac.kage.name/ 

Tôi đã không cố gắng này, vì vậy tôi không thể đưa ra được nữa chi tiết được nêu ra. Bạn cũng có thể quan tâm đến số request for a seamless way of transitioning the package name của mình.

Các vấn đề liên quan