Я повинен завантажити нову програму, це просто дизайн, який трохи відрізняється. Вчора я створив файл сховища ключів для підписання програми. Чи можу я використовувати те саме?
Я повинен завантажити нову програму, це просто дизайн, який трохи відрізняється. Вчора я створив файл сховища ключів для підписання програми. Чи можу я використовувати те саме?
Відповіді:
Ви можете використовувати це keystore
для будь-якої кількості програм.
Не потрібно створювати нове сховище ключів.
Поки що я наведу зустрічний аргумент до консенсусної відповіді.
Я погоджуюсь, що для більшості авторів додатків більшість випадків спільне використання одного сховища ключів / сертифіката / пароля між вашими програмами буде нормальним. Найважливіше - використовувати " той самий сертифікат протягом очікуваного терміну служби ваших програм ", щоб програма могла оновити себе.
Але я можу придумати одну дуже вагому причину, щоб мати окремі сховища ключів для окремих програм або сімейств програм. Якщо ви думаєте, що коли-небудь захочете продати додаток комусь іншому, щоб він опублікував його як оновлення до оригіналу, вам доведеться поділитися з ним своїм єдиним сховищем ключів і паролем, щоб зробити це. Можливо, це не велика проблема, але трохи хвилювання для вас і, можливо, проблема належної ретельності для досить великого покупця.
Крім того, я справді не читаю той самий рядок у документації так само, як @ol_v_er. Думаю, поточний рядок:
Ви повинні підписувати всі свої програми однаковим сертифікатом протягом очікуваного терміну служби ваших програм.
(зверніть увагу на відсутність коми в поточній версії) просто підкреслює, що рекомендація "протягом усього життя" стосується всіх програм, а не фактично вказує вам використовувати один і той же сертифікат для всіх своїх програм.
Офіційна документація повідомляє нам:
Загалом, рекомендованою стратегією для всіх розробників є підписання всіх ваших програм однаковим сертифікатом протягом очікуваного терміну служби ваших програм. Є кілька причин, чому ви повинні це робити ...
https://developer.android.com/studio/publish/app-signing.html#considerations
Так що так, спробуйте підписати всі свої заявки тим самим сертифікатом.
Я хочу додати тут кілька роз’яснень, оскільки це запитання та відповіді надають мені плутанину. Дуже важливо зрозуміти, що насправді є магазином ключів.
Магазин ключів - це лише засіб для надійного зберігання пари відкритих / приватних ключів, яка використовується для підписання ваших Android-файлів. Так що так, ви можете використовувати один і той же магазин ключів для підписання декількох файлів apk без проблем. Ви також можете використовувати один і той же псевдонім (кожен псевдонім - це сертифікат), щоб підписати кілька apk, і це буде працювати. Однак це має наслідки для безпеки. Якщо ваш єдиний псевдонім порушено, то всі ваші програми будуть скомпрометовані.
Однак якщо ви збираєтеся продати права на свої програми одного дня, то використання одного і того ж псевдоніма для всіх ваших програм може бути не найкращою ідеєю. Однак використання одного і того ж сховища ключів, за умови використання іншого псевдоніма для кожного apk, не обов'язково може бути поганим варіантом. Я впевнений, що є спосіб, яким можна перенести сертифікат з одного сховища ключів в інший, щоб можна було надійно надати необхідні ключі лише для цього сертифіката своєму покупцеві.
Щоб було дуже зрозуміло, сховище ключів - це саме це, носій інформації для ключів. Він не відіграє фактичної ролі в процесі підписання apk, а служить лише для зберігання ключів, які фактично використовуються для підписання apk.
Список літератури:
Розуміння магазину ключів, сертифікатів та псевдонімів
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
Звичайно! Ви можете використовувати той самий файл сховища ключів скільки завгодно разів. Завжди краще використовувати один і той же файл сховища ключів для всіх програм, які ви розробляєте. Це допоможе, якщо ви хочете оновити або змінити програму. На той момент вам потрібно підписати свою заявку тим самим ключем.
Я підписую всі свої програми, використовуючи той самий сертифікат (магазин ключів). Це дає перевагу, якщо я передумаю і хочу, щоб мої програми передавали свої дані.
Як ви могли знати, Android ідентифікує кожну програму за допомогою UID. Якщо всі ваші програми підписані однаковим сертифікатом, ви можете попросити android призначити одному і тому ж ідентифікатору користувача більше одного додатка, і, зрештою, змусити їх запускатись в одному процесі та обмінюватися даними.
З android doc android: sharedUserId
android: sharedUserId
Ім'я ідентифікатора користувача Linux, який буде передано іншим програмам. За замовчуванням Android призначає кожному додатку свій унікальний ідентифікатор користувача. Однак, якщо для цього атрибута встановлено одне і те ж значення для двох або більше програм, усі вони матимуть однаковий ідентифікатор - за умови, що вони також підписані тим самим сертифікатом. Додаток з однаковим ідентифікатором користувача може отримати доступ до даних один одного і, за бажанням, запускатись у тому ж процесі
Останнє оновлення
Якщо ви хочете зареєструватися в програмі підписання програм за допомогою Google, вам потрібно використовувати новий інший ключ для підписання вашого apk або пакета, інакше після завантаження консолі Google ви отримаєте повідомлення про помилку
Ви завантажили файл .apk або пакет Android App Bundle, підписаний ключем, який також використовується для підписання файлів .apk, які доставляються користувачам. Оскільки ви зареєстровані в програмі Підписання додатків Google Play, перед підвантаженням слід підписати APK або пакет Android App Bundle новим ключем