Android Studio 2.3에서 사용할 서명 버전 중 하나 이상을 선택하십시오
이제 Android Studio에서 서명 된 APK를 생성하는 동안 서명 된 APK 생성 프로세스의 마지막 단계에서 서명 버전 으로 1 V1 (Jar Signature)
과 2의 두 가지 옵션 (CheckBox)이 표시 됩니다.V2 (Full APK Signature)
V1 (Jar Signature) 과 의 차이점은 무엇입니까?새로운 Android Studio 업데이트에서 V2 (Full APK Signature) 입니까?
그리고 Play 스토어 출시를 위해 apk에 서명하려면 어느 것을 사용해야합니까?
또한 두 번째 옵션을 사용할 때 APK를 설치하는 동안 Install Parse Failed No Certificates 오류가 발생 합니다 .
답변
APK 서명을보다 안전하게 만들기 위해 추가 기능을 갖춘 Android 7.0에 도입 된 새로운 서명 메커니즘입니다.
필수는 아닙니다. 가능하면 해당 확인란을 모두 확인해야하지만 새로운 V2 서명 메커니즘에 문제가 있으면 생략 할 수 있습니다.
따라서 문제가 발생하면 V2를 선택하지 않은 채로 둘 수 있지만 가능하면 점검해야합니다.
답변
Play 스토어 출시를 위해 apk에 서명해야합니까?
대답은 예 입니다.
당으로 https://source.android.com/security/apksigning/v2.html#verification
:
Android 7.0에서 APK는 APK 서명 체계 v2 (v2 체계) 또는 JAR 서명 (v1 체계)에 따라 검증 될 수 있습니다. 이전 플랫폼은 v2 서명을 무시하고 v1 서명 만 확인합니다.
V2 (Full Apk Signature) 옵션 을 확인하여 빌드를 생성하려고했습니다 . 그런 다음 7.0 장치 아래에 릴리스 빌드를 설치하려고 할 때 장치에 빌드를 설치할 수 없습니다.
그 후 버전 확인란을 모두 선택하여 빌드를 시도하고 릴리스 빌드를 생성했습니다. 그런 다음 빌드를 설치할 수 있습니다.
답변
여기에 쓰여 있습니다 “APK 서명 구성표 v2 및 JAR 서명을 사용하는 기존 서명 방식 모두를 사용하여 응용 프로그램을 서명 Gradle을 2.2, 기본적으로 안드로이드 스튜디오 2.2과 안드로이드 플러그인을.”그
이 새로운 확인란이 Android 2.3에 등장한 것으로 보이므로 이전 버전의 Android Studio (최소 2.2)가 두 서명으로 서명 한 것으로 알고 있습니다. 따라서 이전과 마찬가지로 계속하려면 두 확인란을 모두 선택하는 것이 좋습니다.
2017 년 3 월 31 일 수정 : 두 서명이있는 여러 앱을 제출했습니다 => 문제 없음 🙂
답변
나는 이것이 좋은 대답 이라고 생각 합니다 .
APK 서명 체계 v2 확인
- 찾아
APK Signing Block
을 확인하십시오.- 두 개의 크기 필드
APK Signing Block
는 동일한 값 을 포함합니다. ZIP Central Directory
바로 뒤에ZIP End of Central Directory
기록이옵니다.ZIP End of Central Directory
뒤에 더 많은 데이터가 없습니다.
- 두 개의 크기 필드
APK Signature Scheme v2 Block
내부 에서 첫 번째를 찾습니다APK Signing Block
. v2 차단이 있으면 3 단계로 진행하십시오. 그렇지 않으면 v1 구성표를 사용하여 APK 확인으로 돌아갑니다.- 의 각 서명자에 대해
APK Signature Scheme v2 Block
:- 서명에서 가장 강력한 지원되는 서명 알고리즘 ID를 선택하십시오. 강력한 순서는 각 구현 / 플랫폼 버전에 달려 있습니다.
- 공개 키를 사용하여 서명 된 데이터에 대해 서명의 해당 서명을 확인하십시오. 서명 된 데이터를 구문 분석하는 것이 안전합니다.
- 요약 및 서명의 순서화 된 서명 알고리즘 ID 목록이 동일한 지 확인하십시오. (서명 제거 / 추가를 방지하기위한 것입니다.)
- 서명 알고리즘에서 사용하는 다이제스트 알고리즘과 동일한 다이제스트 알고리즘을 사용하여 APK 내용의 다이제스트를 계산합니다.
- 계산 된 다이제스트가 다이제스트의 해당 다이제스트와 동일한 지 확인하십시오.
SubjectPublicKeyInfo
첫 번째 인증서 인증서 중 공개 키와 동일한 지 확인하십시오 .
- 하나 이상의 서명자가 발견되고 각 발견 된 서명자에 대해 3 단계가 성공하면 확인에 성공합니다.
참고 : 3 단계 또는 4 단계에서 오류가 발생하면 v1 구성표를 사용하여 APK를 확인해서는 안됩니다.
JAR 서명 APK 확인 (v1 구성표)
JAR 서명 APK는 표준 서명 JAR이며, 여기에 나열된 항목 META-INF/MANIFEST.MF
과 모든 서명이 동일한 서명자 세트에 의해 서명되어야 하는 항목이 정확히 포함되어야합니다 . 무결성은 다음과 같이 확인됩니다.
- 각 서명자는
META-INF/<signer>.SF
및META-INF/<signer>.(RSA|DSA|EC)
JAR 항목으로 표시됩니다 . <signer>.(RSA|DSA|EC)
A는PKCS #7 CMS ContentInfo
그의 시그니처를 통해 확인 SignedData와 구조<signer>.SF
파일.<signer>.SF
fileMETA-INF/MANIFEST.MF
은의 각 섹션에 대한 전체 파일 다이제스트 및의 각 섹션 다이제스트를 포함합니다META-INF/MANIFEST.MF
. 의 전체 파일 다이제스트MANIFEST.MF
가 확인됩니다. 실패하면 각MANIFEST.MF
섹션 의 요약이 대신 확인됩니다.META-INF/MANIFEST.MF
무결성으로 보호 된 각 JAR 항목에 대해 항목의 압축되지 않은 내용의 요약을 포함하는 해당 이름의 섹션이 들어 있습니다. 이 모든 다이제스트가 확인됩니다.- APK에 목록에
MANIFEST.MF
없고 JAR 서명의 일부 가 아닌 JAR 항목이 APK에 포함되어 있으면 APK 확인에 실패합니다 . 따라서 보호 체인은 각 무결성 보호 JAR 항목의<signer>.(RSA|DSA|EC)
→<signer>.SF
→MANIFEST.MF
→ 내용입니다.
답변
이 링크에 따르면 : 서명 도움말
APK Signature Scheme v2는 다음을 제공합니다.
- 더 빠른 앱 설치 시간
- APK 파일의 무단 변경에 대한 추가 보호
Android 7.0은 새로운 앱 서명 체계 인 APK Signature Scheme v2를 도입하여 앱 설치 시간을 단축하고 APK 파일의 무단 변경을 방지합니다. 기본적으로 Android Studio 2.2 및 Gradle 2.2 용 Android 플러그인은 APK 서명 체계 v2와 JAR 서명을 사용하는 기존 서명 체계 를 모두 사용하여 앱에 서명합니다.
되는 추천 APK 서명 구성표 사용 V2를 하지만입니다 필수는 아닙니다 .
APK Signature Scheme v2를 앱에 적용하는 것이 좋지만이 새로운 체계는 필수는 아닙니다. APK Signature Scheme v2를 사용할 때 앱이 제대로 빌드되지 않으면 새 체계를 비활성화 할 수 있습니다.