2014-12-18 4 views
1

임 내가이 명령을 내 응용 프로그램에 대한 업데이트를 해제 할 수 있도록 내 APK에 서명하려고 포함 jarsigner ­-verbose -sigalg SHA1withRSA -­digestalg SHA1 ­-keystore my­release-key.keystore CordovaApp­release­unsigned.apk alias_name하지만이 오류가 :인증서 체인을 찾을 수 없습니다,하지만 키 스토어는 개인 키

jarsigner: Certificate chain not found for: ¡sigalg. ¡sigalg must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain. 

I've 그냥 이동 새 컴퓨터에 .keystore 파일을 복사했습니다. 내가 keytool -list -v 할 때 개인 키가 들어있는 것처럼 보입니다. 그래서 나는 잘못 이해합니다. 공개 키가 누락 되었습니까? enter image description here

+0

분명히 처음부터 정확하게 명령을 입력하지 않았습니다. 별칭으로 취급되는 이유는 무엇입니까? – EJP

+0

내 새로운 대답을 참조하십시오. 그럴 수 있습니까? – tobbe

+0

마이너스 기호가 된 곳은 부적합합니다. 사실은 사용자가받은 응답이 명령 줄에 문제가 있음을 나타냅니다. 그들이 당신이 올린 글에서 누락되었습니다; @ Omikron의 답변에 언급 된대로 필요하다는 것입니다. – EJP

답변

4

분명히 인코딩 문제였습니다. 명령에 빼기 기호 (ASCII 코드 0x2D)와 비슷한 문자가 있지만 대시 또는 하이픈 문자 (http://en.wikipedia.org/wiki/Dash) 중 하나였습니다. 때문에 잘못된 문자 코드의

첫 번째 매개 변수 "-verbose"이 아닌 옵션으로하지만, jar 파일의 이름으로와 jarsigner를 인식했다 "-sigalg"는 별칭으로 인식되었다 :

Usage: jarsigner [options] jar-file alias 

이를 오류 메시지의 별칭이 "¡sigalg"이고 명령의 실제 별칭이 아니며 처음에 거꾸로 된 느낌표가 포함 된 이유를 설명합니다 (다른 문자 집합에서 "-"로 사용됨).

+0

감사! 그러나 어떤 이유로 든 빼기 부호가 사라졌다 :/ – tobbe

+1

그래, 대답을 업데이트했다. – Omikron