Tôi phải tải lên một ứng dụng mới, Chỉ là thiết kế hơi khác một chút. Hôm qua tôi đã tạo tệp kho khóa để ký đơn đăng ký. Tôi có thể sử dụng giống nhau không?
Tôi phải tải lên một ứng dụng mới, Chỉ là thiết kế hơi khác một chút. Hôm qua tôi đã tạo tệp kho khóa để ký đơn đăng ký. Tôi có thể sử dụng giống nhau không?
Câu trả lời:
Bạn có thể sử dụng nó keystore
cho bất kỳ số lượng ứng dụng nào.
Không cần tạo kho khóa mới.
Cho đến nay, tôi sẽ lập luận ngược lại với câu trả lời đồng thuận.
Tôi đồng ý rằng đối với hầu hết các tác giả ứng dụng, việc chia sẻ cùng một kho khóa / chứng chỉ / mật khẩu giữa các ứng dụng của bạn sẽ hoạt động tốt. Điều quan trọng là sử dụng " cùng một chứng chỉ trong suốt vòng đời dự kiến của các ứng dụng của bạn " để ứng dụng có thể tự nâng cấp.
Nhưng tôi có thể nghĩ ra một lý do rất tốt để có kho khóa riêng cho các ứng dụng hoặc nhóm ứng dụng riêng biệt. Nếu bạn nghĩ rằng bạn có thể muốn bán một ứng dụng cho người khác để họ xuất bản dưới dạng bản nâng cấp lên bản gốc, bạn sẽ phải chia sẻ kho khóa và mật khẩu một và duy nhất của mình với họ để làm như vậy. Có lẽ không phải là một vấn đề lớn nhưng một chút lo lắng đối với bạn và có lẽ là vấn đề thẩm định đối với một người mua đủ lớn.
Ngoài ra, tôi thực sự không đọc dòng tương tự trong tài liệu theo cách giống như @ol_v_er. Tôi nghĩ dòng hiện tại:
Bạn nên ký tất cả các ứng dụng của mình bằng cùng một chứng chỉ trong suốt thời gian tồn tại dự kiến của các ứng dụng của bạn.
(lưu ý rằng việc thiếu dấu phẩy trong phiên bản hiện tại) chỉ đơn giản là nhấn mạnh rằng đề xuất 'thời gian tồn tại' áp dụng cho tất cả các ứng dụng, không thực sự hướng bạn sử dụng cùng một chứng chỉ cho tất cả các ứng dụng của bạn.
Tài liệu chính thức cho chúng tôi biết:
Nói chung, chiến lược được đề xuất cho tất cả các nhà phát triển là ký tất cả các ứng dụng của bạn bằng cùng một chứng chỉ, trong suốt thời gian tồn tại dự kiến của các ứng dụng của bạn. Có một số lý do tại sao bạn nên làm như vậy ...
https://developer.android.com/studio/publish/app-signs.html#considerations
Vì vậy, có, hãy cố gắng ký tất cả các ứng dụng của bạn bằng cùng một chứng chỉ.
Tôi muốn thêm một số làm rõ ở đây, bởi vì câu hỏi này và các câu trả lời được cung cấp dẫn đến sự nhầm lẫn cho tôi. Điều quan trọng là phải hiểu kho khóa thực sự là gì.
Kho khóa chỉ là một phương tiện để lưu trữ an toàn cặp khóa công khai / riêng tư được sử dụng để ký các ứng dụng Android của bạn. Vì vậy, có, bạn có thể sử dụng cùng một kho khóa để ký nhiều apk mà không gặp vấn đề gì. Bạn cũng có thể sử dụng cùng một bí danh (mỗi bí danh là một chứng chỉ) để ký nhiều apk và nó sẽ hoạt động. Tuy nhiên, nó có ý nghĩa bảo mật. Nếu bí danh duy nhất của bạn bị xâm phạm, thì tất cả các ứng dụng của bạn sẽ bị xâm phạm.
Tuy nhiên, nếu bạn có ý định bán quyền đối với các ứng dụng của mình vào một ngày nào đó, thì việc sử dụng cùng một bí danh cho tất cả các ứng dụng của bạn có thể không phải là một ý kiến hay. Tuy nhiên, việc sử dụng cùng một kho khóa, với điều kiện bạn sử dụng một bí danh khác nhau cho mỗi apk, có thể không nhất thiết là một lựa chọn tồi. Tôi chắc rằng có một cách để bạn có thể di chuyển chứng chỉ từ kho khóa này sang kho khóa khác để bạn có thể an toàn cung cấp các khóa cần thiết cho chỉ chứng chỉ đó cho người mua của mình.
Nói một cách rất rõ ràng, kho khóa chỉ là như vậy, một phương tiện lưu trữ cho các khóa. Nó không đóng vai trò thực sự nào trong quá trình ký apk mà chỉ đóng vai trò lưu trữ các khóa thực sự được sử dụng để ký apk.
Người giới thiệu:
Hiểu kho khóa, chứng chỉ và bí danh
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
Tất nhiên! Bạn có thể sử dụng cùng một tệp kho khóa bao nhiêu lần bạn muốn. Tốt hơn hết là sử dụng cùng một tệp kho khóa cho tất cả các ứng dụng bạn phát triển. Điều đó sẽ hữu ích nếu bạn muốn cập nhật hoặc sửa đổi ứng dụng. Lúc đó bạn cần ký vào đơn đăng ký của mình bằng cùng một khóa.
Tôi ký tất cả các ứng dụng của mình bằng cùng một chứng chỉ (kho khóa). Điều này mang lại lợi thế nếu tôi thay đổi ý định và muốn các ứng dụng của mình chia sẻ dữ liệu của chúng.
Như bạn có thể biết, Android xác định từng ứng dụng bằng UID. Nếu tất cả các ứng dụng của bạn được ký bởi cùng một chứng chỉ, bạn có thể yêu cầu android chỉ định cùng một id người dùng cho nhiều ứng dụng và inturn làm cho chúng chạy trong một quy trình duy nhất và chia sẻ dữ liệu.
Từ android doc android: sharedUserId
android: sharedUserId
Tên của ID người dùng Linux sẽ được chia sẻ với các ứng dụng khác. Theo mặc định, Android chỉ định cho mỗi ứng dụng ID người dùng duy nhất của nó. Tuy nhiên, nếu thuộc tính này được đặt thành cùng một giá trị cho hai hoặc nhiều ứng dụng, tất cả chúng sẽ chia sẻ cùng một ID - miễn là chúng cũng được ký bởi cùng một chứng chỉ. Ứng dụng có cùng ID người dùng có thể truy cập dữ liệu của nhau và nếu muốn, chạy trong cùng một quy trình
Cập nhật gần đây
Nếu bạn muốn đăng ký tính năng Ký ứng dụng của google, bạn phải sử dụng khóa khác mới để ký gói ứng dụng hoặc gói của mình, nếu không sau khi tải lên bảng điều khiển google sẽ đưa ra thông báo lỗi cho bạn
Bạn đã tải lên APK hoặc Android App Bundle được ký bằng khóa cũng được sử dụng để ký APK được phân phối cho người dùng. Vì bạn đã đăng ký App Signing của Google Play, bạn nên ký APK hoặc Android App Bundle của mình bằng một khóa mới trước khi tải nó lên