https://play.google.com/apps/publish/   배포할앱관련작업하는 곳

https://console.developers.google.com/apis/   google api를 사용하는 경우,이를 관리하는 곳

https://console.cloud.google.com/     google cloud를 사용하는 경우,이들을 관리하는 장소 (데이터베이스, app engine 등등)

https://play.google.com/apps/publish/ 를 통해 google play 사이트에 들어간다. 

들어가 보면 app release시에 새로 sha1가 만들어진것을 알수 있다.

image

이 새로 만들어진 sha1를 이용하여 https://console.developers.google.com/apis/ 에서 해당 sha1를 이용한 새로운 credentials를 만들어주어야 한다. 

이 새로운 credential을 만드는 과정은 배포된 app은 새로 만들어진 sha1를 이용하여 api 서비스를 이용하기 때문에 api 접근 통로를 하나더 만드는 과정이다.

image
image
image

When you upload an apk to the play store then play store creates a new SHA1 key called “App signing certificate”. You get that SHA1 and save in your console or firebase account (as you need).

New SHA1 will be found at Released Management->App Sigining on your play console.

or

when you build signed apk with your filename.jks it has different SHA than your debug apk, put these SHA which is generated by signed apk in Firebase nd update it and again download json from firebase and override existing json from your android studio.

ref) https://stackoverflow.com/questions/35561657/sign-in-with-google-for-android-not-working-in-release-apk

Preparing your app for release

  • remove Log calls 

  • remove the android:debuggable attribute from your manifest file

image
image

정보가 기억나지 않는 경우 project structure 메뉴를 이용해서 확인할수 있다.

만들어진 apk화일은 C:Users사용자AndroidStudioProjects프로젝트이름app

안에 app-release.apk로 저장된다.

  • Testing the release version of your application.

  • need to be sure that all application resources such as multimedia files and graphics are updated

  • Preparing remote servers and services

P.S.

다음과 같은 error 발생시

ref) https://stackoverflow.com/a/44816463

You can see from the error that there is no jar signature.Select both the checkboxes for signature versions (v1 and v2) in last step and then build the apk. It will work

Upload failed You uploaded an APK with an invalid signature (learn more about signing). Error from apksigner: ERROR: JAR_SIG_NO_SIGNATURES: No JAR signatures

android app 개발시 library 버전이 맞지 않아 에러가 생기는 경우가 있다. 에러가 발생하는 위치는 해당 library를 사용하는 곳에서 발생한다.

나의 경우 

java.lang.NoSuchMethodError: No virtual method zzmy()Ljava/util/ArrayList; in class Lcom/google/android/gms/auth/api/signin/GoogleSignInOptions; or its super classes (declaration of ‘com.google.android.gms.auth.api.signin.GoogleSignInOptions’ appears in /data/app/com.a18th_century_programmer.jacob_android_pj1-2/split_lib_dependencies_apk.apk:classes12.dex)

바로 아래와 같은 위치에서 발생)

mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
       .enableAutoManage(getActivity() /* FragmentActivity */, this /* OnConnectionFailedListener */)
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
       .build();

와 같은 내용의 에러메시지가 발생했고 app gradle 화일을 확인결과 com.google.android.gms 여러개의 버전을 사용하고 있었다. 

또 여러 버전의 com.android.support 를 사용하고 있었다. 이들을 같은 버전으로 통일해주야 한다.