Post

cocos2dx app key 서명

android에서는 안되길래 검색하다보니

keytool 을 사용하는 방법이 있었다.

https://cafe.naver.com/cocos2dxusers/26291

 

[3.6]윈도우에서 이클립스 없이 안드로이드 APK 빌드하기(release버전)

안녕하세요.주말에도 열심히 개발중인 악당캉아쥐라고 합니다. 'ㅁ'/[ 시작하며 ]항상 많은 도움을 얻다가 이번에 한가지 알게 된 것이 있어서 공유하려고 합니다.제가 코코스를 ...

cafe.naver.com

 

https://developer.android.com/tools/publishing/app-signing.html

 

앱 서명  |  Android Studio  |  Android Developers

앱 서명 및 보안과 관련된 중요한 개념을 알아보고, Android 스튜디오를 사용하여 Google Play에 출시하기 위해 앱에 서명하는 방법과 Play 앱 서명을 선택하는 방법을 알아보세요.

developer.android.com

정리를 하자면

C:\Program Files\Java\jre1.8.0_202(각자 설치된 jre 버전)

여기까지 cmd로 들어와서 keytool 명령어를 사용한다.

keytool -genkey -v -keystore 앱이름 -alias 별명 -keyalg RSA -keysize 2048 -validity 10000

(위 명령어는 잘못된 거. 아래에 올바른 옵션 찾았음)

keytool 은(는) 내부 또는 외부 명령 실행할 수 있는 프로그램 또는 배치 파일이 아닙니다

라고 뜬다.

jdk가 깔려 있지 않아서... java가 없어서라고 하는데 난 깔려 있는데?ㅁ?

환경 변수 설정을 아래와 같이 해주었지만

C:\Program Files\Java\jdk1.8.0_202\bin;

jdk-17 폴더가 설치되어있고 거기에 keystore가 있어서 추가로 해주기로 했다.

jdk-17이랑 jdk1.8.0 이랑 숫자단위가 다른걸로봐서

각자 다른 곳?에 쓰이는 별개의 jdk인거 같고...예전에 그런식으로 이해해는데

지금은 뭐였는지 정확히 기억안남 ㅠㅠ

아무튼 추가

C:\Program Files\Java\jdk-17\bin

다시 cmd 켜고 시도하니까 된다. 아 이 때 cmd는 반드시 관리자 권한으로 실행! 안그러면 변경할 수 없다고 뜨더라...

keystore 명령어는 인식한다. 이제 비번이나 이름, 지역 등등.. 기타를 넣어준다.

비밀번호같은 건 잘 저장해둔다.

생성완료!

근데

[poetryapp.keystore을(를) 저장하는 중]

Warning:
JKS 키 저장소는 고유 형식을 사용합니다. "keytool -importkeystore -srckeystore poetryapp.keystore -destkeystore poetryapp.keystore -deststoretype pkcs12"를 사용하는 산업 표준 형식인 PKCS12로 이전하는 것이 좋습니다.

으음?

경고는 떴지만

C:\Program Files\Java\jdk1.8.0_202\bin 에 보면 keystore 파일이 만들어져 있다.

그러면 이제 release 빌드를 한다(debug x)

cocos compile 프로젝트 이름 -p android -m release

그러면

Please input the absolute/relative path of '.keystore' file:

근데 난 잘 맞게 넣었는데 왜 The string inputed is not a file! 라고 떠?

알고보니 full경로를 적어줘야한다.c:\ 부터 시작하는 그거... ./ 현재 폴더라거나 키스토어파일 이름만 덜렁 올리면 안된다.

아무튼 그러면 debug보다는 좀 더 시간이 오래걸려서

release 파일 생성 완료...가 되면 좋은데 실패했다.

왜죠?

 Failed to read key poetryapp from store "poetryapp.keystore": Cannot recover key

보호되지 않은 키라고?

찾아보니 pkcs12 형식으로 마이그레이션 하라고 뜸. 경고가 그런 의미였나...

file or directory 'project\proj.android\app\libs', not found

lib 폴더를 찾을 수 없다고 뜨는데 이건 괜찮나??

아무튼 pkcs12 형식으로 만들기 도전

keytool -genkey -v -keystore 이름.keystore -storetype pkcs12 -alias 별명 -keyalg RSA -keysize 2048 -validity 10000

proj.android\app\build.gradle 파일 열기.

android 내에 keystore 이름을 새로 만든걸로 변경해준다.( proj.android\app\build.gradle에서 기존 key이름이 저장되어 있어서 이걸 변경해줘야함)

여기서 스토어 파일 이름이랑 비밀번호랑 다 새로운 key로 바꿔주면 됨!!

드디어 key 서명한 relase 빌드 성공!

▲ top