2012-01-09 41 views
8

Tôi vừa phát hành Ứng dụng Android đầu tiên của mình thông qua thị trường. Tôi hiện đang làm việc với một số tính năng mới cho bản phát hành tiếp theo và muốn cài đặt "xây dựng" này trên điện thoại của mình mà không gỡ cài đặt phiên bản "sản xuất" (trong số những thứ khác, điều này sẽ ngừng cập nhật trong tương lai từ Market).Cài đặt phiên bản "dev" của ứng dụng Android dọc theo phiên bản thị trường bên

Tôi đặc biệt quan tâm đến điều này vì tôi muốn cung cấp APK cho bạn bè/"người thử nghiệm beta" để thử, nhưng tôi không muốn họ gỡ cài đặt ứng dụng đã phát hành trước.

Liệu có cách nào để có trên một thiết bị hai ứng dụng: "App (thông qua thị trường)" và "App (DEV)"

có liên quan đến việc này bằng một phím ký khác nhau hoặc thay đổi biểu hiện trong cách nọ cách kia?

Cảm ơn!

+0

Để thử nghiệm beta, tôi khuyên bạn nên thông báo cho bạn bè của bạn cài đặt phiên bản hiện tại từ App Market và gửi cho họ .apk: s cho các phiên bản phát triển (những phiên bản bạn sắp xuất bản khi sẵn sàng). Và không, nó không thể có cùng một ứng dụng được cài đặt với các phím khác nhau (ít nhất là trên cổ phiếu Android AFAIK). – harism

Trả lời

6

Bạn chỉ cần đổi tên gói, vì vậy cả hai ứng dụng đều được cài đặt.

Bạn cần thay đổi tên gói trong tệp kê khai cũng như trong thư mục nguồn. Sử dụng tái cấu trúc Eclipse cho nó và nó sẽ được thực hiện sau một phút.

Chúng không cần phải được ký bằng cùng một khóa.

+0

Nhưng chúng có thể được ký bằng cùng một khóa không? –

+0

Chắc chắn, điều đó là có thể. – Force

+0

Bằng cách "đổi tên gói", bạn có muốn thay đổi "com.example.myapp" thành "com.example.myappdev" không? – Eponymous

3

Sử dụng Gradle điều này rất dễ dàng. Dưới đây là một đoạn trích từ một trong những file gradle tôi:

android { 
    // ... 

    defaultConfig { 
     resValue "string", "app_name", "<app name>" 
     // ... 
    } 

    buildTypes { 
     release { 
      // ... 
     } 
     debug { 
      resValue "string", "app_name", "<app name> (debug)" 
      applicationIdSuffix ".debug" 
      // ... 
     } 
    } 
} 

Các phần quan trọng cho phép cài đặt khác đang sử dụng applicationIdSuffix được thiết lập trong các debug xây dựng. Dưới mui xe này về cơ bản không giống như đề xuất trong câu trả lời của Force; nó thay đổi id ứng dụng của ứng dụng của bạn.

Đặt resValue app_name cho phép chúng tôi có tên ứng dụng khác nhau, điều này giúp bạn dễ dàng theo dõi cài đặt nào hơn (vì cả hai ứng dụng sẽ có cùng tên).

Đừng quên xóa app_name khỏi số strings.xml và điền tên ứng dụng của riêng bạn thay vì <app name> nếu bạn quyết định đặt tên ứng dụng trong tệp gradle như tôi đã làm ở trên.

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