새 응용 프로그램을 업로드해야하는데 약간 다른 디자인 일뿐입니다. 어제 애플리케이션에 서명하기 위해 키 저장소 파일을 생성했습니다. 같은 것을 사용할 수 있습니까?
답변:
keystore
여러 응용 프로그램에 사용할 수 있습니다 .
새 키 저장소를 생성 할 필요가 없습니다.
지금까지 합의 된 답변에 대해 반론을 할 것입니다.
대부분의 앱 작성자는 앱간에 동일한 키 저장소 / 인증서 / 암호를 공유하는 것이 정상적으로 작동한다는 데 동의합니다. 중요한 것은 " 애플리케이션의 예상 수명 동안 동일한 인증서 를 사용하여" 앱이 자체적으로 업그레이드 할 수 있도록하는 것입니다.
그러나 별도의 앱 또는 앱 제품군에 대해 별도의 키 저장소를 보유해야하는 한 가지 좋은 이유를 생각할 수 있습니다. 다른 사람에게 앱을 판매하여 원본에 대한 업그레이드로 게시하기를 원할 경우,이를 위해 유일한 키 스토어와 비밀번호를 공유해야합니다. 아마도 큰 문제는 아니지만 약간의 걱정과 충분히 큰 구매자에 대한 실사 문제 일 것입니다.
또한 문서에서 @ol_v_er와 같은 방식으로 동일한 줄을 읽지 않습니다. 나는 현재 줄을 생각한다 :
애플리케이션의 예상 수명 동안 동일한 인증서로 모든 앱에 서명해야합니다.
(현재 버전에는 쉼표가 없음) 단순히 '평생'권장 사항이 모든 앱에 적용된다는 점을 강조하는 것이며 실제로 모든 앱에 동일한 인증서를 사용하도록 지시하는 것이 아닙니다.
공식 문서는 다음과 같이 알려줍니다.
일반적으로 모든 개발자에게 권장되는 전략은 애플리케이션의 예상 수명 동안 동일한 인증서로 모든 애플리케이션에 서명하는 것입니다. 그렇게해야하는 몇 가지 이유가 있습니다.
https://developer.android.com/studio/publish/app-signing.html#considerations
예, 동일한 인증서로 모든 응용 프로그램에 서명하십시오.
이 질문과 제공된 답변으로 인해 혼란이 발생하기 때문에 여기에 몇 가지 설명을 추가하고 싶습니다. 키 저장소가 실제로 무엇인지 이해하는 것이 중요합니다.
키 저장소는 Android APK에 서명하는 데 사용되는 공개 / 개인 키 쌍을 안전하게 저장하는 수단 일뿐입니다. 예, 동일한 키 저장소 를 사용하여 문제없이 여러 APK에 서명 할 수 있습니다 . 동일한 별칭 (각 별칭은 인증서 임)을 사용하여 여러 APK에 서명 할 수도 있으며 작동합니다. 그러나 보안과 관련이 있습니다. 단일 별칭이 손상되면 모든 앱이 손상됩니다.
그러나 언젠가 앱에 대한 권한을 판매하려는 경우 모든 앱에 동일한 별칭을 사용하는 것은 좋은 생각이 아닐 수 있습니다. 그러나 각 apk에 대해 다른 별칭을 사용하는 경우 동일한 키 저장소를 사용하는 것이 반드시 잘못된 옵션은 아닙니다. 한 키 저장소에서 다른 키 저장소로 인증서를 이동할 수있는 방법이 있으므로 해당 인증서에만 필요한 키를 구매자에게 안전하게 제공 할 수 있습니다.
명확하게 말하면, 키 저장소는 키 저장 매체입니다. APK에 서명하는 과정에서 실제 역할을하지 않지만 실제로 APK에 서명하는 데 사용되는 키를 저장하는 역할 만합니다.
참조 :
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
동일한 인증서 (키 저장소)를 사용하여 모든 앱에 서명합니다. 내 마음이 바뀌고 내 앱이 데이터를 공유하도록하려는 경우 이점이 있습니다.
아시다시피 Android는 UID로 각 앱을 식별합니다. 모든 앱이 동일한 인증서로 서명 된 경우 Android에 동일한 사용자 ID를 두 개 이상의 앱에 할당하도록 요청하고 차례로 단일 프로세스에서 실행하고 데이터를 공유하도록 할 수 있습니다.
안드로이드 문서에서 android : sharedUserId
android : sharedUserId
다른 애플리케이션과 공유 할 Linux 사용자 ID의 이름입니다. 기본적으로 Android는 각 애플리케이션에 고유 한 사용자 ID를 할당합니다. 그러나이 속성이 둘 이상의 응용 프로그램에 대해 동일한 값으로 설정되면 동일한 인증서로 서명 된 경우 모두 동일한 ID를 공유합니다. 동일한 사용자 ID를 가진 애플리케이션은 서로의 데이터에 액세스 할 수 있으며 원하는 경우 동일한 프로세스에서 실행할 수 있습니다.
최근 업데이트
Google 앱 서명에 등록 하려면 새로운 다른 키를 사용하여 apk 또는 번들에 서명해야합니다. 그렇지 않으면 Google 콘솔을 업로드 한 후 다음과 같은 오류 메시지가 표시됩니다.
사용자에게 제공되는 APK에 서명하는데도 사용되는 키로 서명 된 APK 또는 Android App Bundle을 업로드했습니다. Google Play 앱 서명에 등록되어 있으므로 업로드하기 전에 새 키로 APK 또는 Android App Bundle에 서명해야합니다.