2013-10-04 4 views
1

Google Play에 Android 앱을 제출할 수 있도록 keytool 기능을 사용하여 공개/비공개 키 쌍을 만들려고합니다. 내가 만든 키를 사용하여 응용 프로그램을 서명 할 때 나는 RSA를 사용하려고 할 때, 나는 jarsigner의Keytool Android 용 공개/개인 키쌍

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

에서 같은 일을이 오류가 발생합니다. 키 스토어의 키를 볼 때 모두가 표시됩니다.
항목 유형 : PrivateKeyEntry

공개 키 및 개인 키가 아닙니다.

나는 그들이에게 키를 생성하는 데 사용되는 명령은

keytool -genkey -keystore nameofkeystore.keystore 
-alias coffitivity -keypass *passwordommitted* -storepass *thepasswordommitted* 

답변

3

이었다 I 해요 실제로 100 % 내가 그것을 해결하기 위해 무슨 짓을했는지 모르겠지만, 이것은 내가 무슨 짓을하고 지금은 작동

keytool -genkeypair -v -keystore my-release-key.keystore 
-alias coffdroid -keyalg RSA -keysize 2048 -validity 10000 

참고 : "genkey"대신 "-genkeypair"가 사용됩니다.

두 번째 : 새로운 부호없는 .apk를 작성했습니다. 이것은 고정 된 것일 수 있습니다 - 그래서 벽에 부딪히면 끝내십시오.

그런 다음 Jarsigner를

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 
-keystore my-release-key.keystore /Users/tommynicholas/Desktop/*apkname*.apk coffdroid 
+0

또 다른 차이점은 keyalg으로 RSA를 지정한다는 것이다. 분명히 기본값은 DSA입니다. –

+0

사실,하지만 그와 함께 다양한 변형을 했었는데 아마 편집해야 할 것 같습니다. 어쨌든, 난 그냥 "서명 된 응용 프로그램 만들기"기능을 사용해야하지만, 자습서는 수동 서명되지 않은 응용 프로그램 방법 이후까지 언급하지 않습니다. 나를 위해 머리를 때리는 순간! –

+0

감사합니다, 이것은 큰 시간을 도왔습니다! –