2017-09-08 61 views
6

Giả sử tôi có ứng dụng trong Cửa hàng Google Play với phiên bản 1.0.Cách kiểm tra bản cập nhật ứng dụng trên Google Play?

Trong phiên bản mới (1.1), tôi muốn nâng cấp cơ sở dữ liệu với các cột mới.

Nâng cấp cơ sở dữ liệu là một sự cố phổ biến trong ứng dụng của tôi vì người dùng trong phiên bản trước (1.0) không có cột mới trong cơ sở dữ liệu.

Tôi đã cố gắng sử dụng Google Play năng thử nghiệm beta Store, nhưng vấn đề là không có cách nào hiệu quả (hoặc ít nhất là tôi đã không tìm thấy một chưa) phải làm như sau:

Cài đặt các Phiên bản ổn định hiện tại (1.0) cho thiết bị của người thử nghiệm, sau đó cập nhật ứng dụng lên (1.1) - giả sử chúng tôi gặp lỗi trong bản phát của phiên bản cập nhật mới (1.1), tôi sửa nó (1.2) và tôi muốn lặp lại thủ tục, tôi muốn cài đặt ứng dụng ổn định 1.0 cho thiết bị của người thử nghiệm và một lần nữa tôi muốn cập nhật ứng dụng lên 1.2 (với lỗi đã giải quyết)

Cách duy nhất (theo như tôi quan tâm) là xóa trình thử nghiệm beta khỏi b Danh sách kiểm tra eta (có thể mất nhiều giờ để làm mới trong hệ thống Google Play), tải lại ứng dụng 1.0, thêm lại người thử nghiệm vào danh sách thử nghiệm beta, (một lần nữa chờ đợi) và tải xuống ứng dụng 1.2 mới.

Có cách nào tinh vi hơn để kiểm tra bản cập nhật phiên bản ứng dụng không?

Xin cảm ơn trước.

EDIT:

Nó sẽ được tốt đẹp nếu tôi có thể làm điều này với những người khác thử nghiệm ứng dụng của tôi. Vì vậy, việc sử dụng càng ít lập trình và lệnh nhanh hơn cần có giải pháp là tốt hơn.

Trả lời

2

Tôi sử dụng Beta để phân phối beta không đau cho các ứng dụng iOS và Android.

Từ: Overview

Bạn muốn phản hồi sớm và thường xuyên suốt vòng đời phát triển của bạn. Với Beta, bạn có thể dễ dàng gửi bản dựng beta cho người dùng của mình. Bạn sẽ tự động nhận được số liệu thống kê sử dụng và số liệu ổn định cho tất cả các bản dựng của mình để bạn biết khi nào bạn sẵn sàng giao hàng.

Tôi thấy nó rất hữu ích và sử dụng beta cùng với crashlytics để báo cáo sự cố. Dưới đây là những lợi thế:

  • Bạn có thể tự động hóa bản dựng với Android Automation for Continuous Delivery và hỗ trợ beta qua gradle.
  • Bản dựng có sẵn ngay lập tức cho tất cả người thử nghiệm.
  • Tất cả các bản dựng được lưu trữ và có thể có sẵn bất kỳ lúc nào.
  • Tự động thêm kỹ sư QA, theo dõi tiến độ, thêm kỹ sư QA theo cách động bằng cách tạo và chia sẻ bản dựng.
  • Truy cập vào tất cả ghi chú phát hành xây dựng với phiên bản dựng (apk) và phiên bản xây dựng.
  • Hơn nữa nếu xây dựng được chấp thuận bởi các kỹ sư QA, người ta có thể trực tiếp tải lên cùng một apk để playstore với fastlane từ gradle chính nó.
6

Bạn không cần số Play Store để nâng cấp cơ sở dữ liệu thử nghiệm.
Bạn chỉ có thể sử dụng trình giả lập. Kéo & Thả phiên bản 1.0 (điều này sẽ cài đặt ứng dụng), mở ứng dụng và kéo & Thả phiên bản 1.1.

Không có bất kỳ tính năng "nâng cấp" thực nào. Nó chỉ là một cài đặt của phiên bản mới.

Nhân tiện, bạn có thể thêm các cột tin tức vào onUpgrade trong số SQLiteOpenHelper.

1

Bạn thực sự không cần kênh beta để kiểm tra bản cập nhật ứng dụng. Bạn chỉ muốn sử dụng kênh beta sau khi thử nghiệm xong và muốn bắt đầu nhận phản hồi của người dùng.

Để kiểm tra một ứng dụng cập nhật các cách cơ bản nhất sẽ được ...

  1. Gỡ bỏ cài đặt bất kỳ hiện tại của ứng dụng của bạn
  2. Cài đặt phiên bản mới nhất PlayStore
  3. mở ứng dụng, đăng nhập làm bất cứ điều gì cần để điền vào cơ sở dữ liệu và cài đặt của bạn
  4. Cài đặt phiên bản ứng dụng mới, được cập nhật. Điều này đã được ký kết với phát hành keystore của bạn hoặc cập nhật sẽ thất bại
  5. Kiểm tra các bản cập nhật ứng dụng

lỗi Fix và lặp lại.


Đảm bảo bạn sẽ có được phiên bản PlayStore như người dùng của mình. Gỡ cài đặt là cách tốt nhất để đảm bảo dữ liệu ứng dụng bị xóa. Sau đó bạn chỉ cần cài đặt ứng dụng như bất kỳ người dùng nào trong 2..

Bạn phải mở ít nhất ứng dụng của mình một lần hoặc ứng dụng sẽ không chạy. Điền dữ liệu ứng dụng của bạn, với tư cách là người dùng, để bạn có thể kiểm tra bản cập nhật đúng cách. Bước 3. là thiết lập dữ liệu thử nghiệm của bạn.

Trong bước 4. ghi nhớ rằng bạn chỉ cần một ứng dụng mà là với keystore phát hành của bạn, nhưng nó vẫn có thể được debuggable. Bạn vẫn có thể đính kèm một trình gỡ rối và kiểm tra những gì đang diễn ra trong trường hợp có nhiều lỗi nghiêm trọng hơn.
Nếu bạn đã định cấu hình đúng tệp build.gradle của mình, bạn có thể chỉ cần nhấn nút Phát trong Android Studio sau khi chọn biến thể xây dựng bản phát hành. Bạn có thể sửa đổi cấu hình phát hành để có thể gỡ lỗi trong khi thử nghiệm hoặc tạo một buildType thứ ba được phát hành đã ký, nhưng có thể gỡ lỗi.

Thử nghiệm thú vị.


Nếu bạn đang sử dụng một VCS

Nếu bạn sử dụng một hệ thống kiểm soát phiên bản (VCS) — mà tôi thực sự hy vọng rằng bạn làm — bạn cũng có thể chỉ cần xây dựng & cài đặt một phiên bản trước trước cập nhật với ảnh chụp nhanh mới nhất của bạn. Các bước tương tự được áp dụng, chỉ áp dụng ở bước 2. bạn tự xây dựng và cài đặt phiên bản trước đó.
So với việc sử dụng các phiên bản phát hành của ứng dụng, điều này có thể dễ dàng hơn trong một số trường hợp, vì bạn không cần truy cập vào kho khóa phát hành và bạn có thể sử dụng các ứng dụng đã ký lỗi mà không cần thay đổi gì trong build.gradle.

Cách tiếp cận này yêu cầu bạn theo dõi phiên bản nào hiện đang được phát hành hoặc bạn có thể thử nghiệm các cập nhật sai. Vì vậy, hãy nhớ gắn thẻ các bản phát hành của bạn!

2

Tôi khuyên bạn nên sao lưu dữ liệu của mình để dễ dàng kiểm tra và chỉnh sửa mã di chuyển của bạn. Điều này chỉ hoạt động trên trình giả lập hoặc thiết bị gốc!

  1. Cài đặt và sử dụng của bạn "cũ" ứng dụng
  2. Lưu dữ liệu thông qua adb pull /data/data/com.company.app $LOCALDIR
  3. Cập nhật lên phiên bản ứng dụng mới của bạn thông qua IDE hoặc adb
  4. Kiểm tra di cư

của bạn Không cần phải cài đặt ứng dụng cũ một lần nữa từ bây giờ trở đi.

Đối với thử lại di cư: 1. adb push $LOCALDIR /data/data/com.company.app 2. Kiểm tra di cư của bạn 3. Fix di chuyển mã của bạn và lặp lại

0

Điều này khá dễ dàng và bạn có thể kiểm tra nó bằng cách thay đổi phiên bản cơ sở dữ liệu cho mình. Bạn thậm chí không cần cập nhật mã phiên bản trong tệp kê khai của mình. Câu trả lời của tôi là hợp lệ nếu bạn đang sử dụng cơ sở dữ liệu SQLite và lớp SQLiteOpenHelper.

Đầu tiên, tăng phiên bản cơ sở dữ liệu bên trong lớp SQLiteOpenHelper.

public DatabaseOpenHelper(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

Khi bạn cập nhật phiên bản phương thức onUpgrade() của lớp SQliteHelper sẽ được gọi. Bạn có thể kiểm tra nó bằng cách sử dụng phương thức println hoặc log.

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    this.oldVersion = oldVersion; 
    this.newVersion = newVersion; 

    if(oldVersion == 1 && newVersion == 2) { 
      // add columns 
    } else if(oldVersion == 2 && newVersion == 3) { 
     // Do another stuff 
    } 
} 

Bạn có thể xác định logic của mình giữa các bản cập nhật. Ví dụ: người dùng có thể có phiên bản 1, bỏ lỡ phiên bản 2 và 3 và cài đặt bản cập nhật với phiên bản 4 của cơ sở dữ liệu, bạn cũng nên cân nhắc điều đó nếu cần. Cập nhật logic là duy nhất đối với bạn. Ví dụ: nếu người dùng có phiên bản cũ bên dưới một phiên bản nhất định và bạn muốn tạo db hoặc bảng mới trên phiên bản cụ thể, tất cả người dùng có phiên bản dưới 6 và bạn muốn xóa cơ sở dữ liệu hoặc bảng trên phiên bản 6, có thể nhận tất cả các giá trị từ bảng đến danh sách hoặc danh sách hoặc tới bất kỳ cấu trúc dữ liệu nào, sau đó tạo cơ sở dữ liệu và/hoặc bảng mới rồi di chuyển các giá trị mới từ danh sách đó chứa đối tượng và thêm thuộc tính rỗng cho cột mới vào bảng mới. Người dùng sẽ không nhận thấy một điều nhưng đằng sau hậu trường, bạn sẽ có thể thay đổi cơ sở dữ liệu hoặc bảng mà không có vấn đề gì. Tôi sử dụng điều này thường xuyên khi tôi muốn thêm hàng hoặc tạo lại cơ sở dữ liệu.

if (oldVersion == 2 && newVersion == 3) { 

     previousMeasures = dbManager.getMeasureListAnglePhoto(); 
     db.execSQL("DROP DATABASE dbOld.db"); 
     db.execSQL("DROP TABLE IF EXISTS " + TableConstants.TABLE_ANGLE_PHOTO); 

     onCreate(db); 

     if (previousMeasures != null) { 
     for (Measure measure : previousMeasures) { 
      dbManager.addMeasureAnglePhoto(measure); 
     } 
    } 
} 
Các vấn đề liên quan