개발시, 오류수정은, 오류를 찾는것이 90%요. 나머지 고치는것이 10%입니다.

로그는 한 줄기의 빛...!


안드로이드 앱 개발시 APK패키징 이후, APK 수동 배포시 알 수 없게도. 아래와 같이 오류메시지를 뱉고는 더이상 진행 불가했습니다.



이렇게 될 경우, 안드로이드 스튜디오와 같은 개발툴에 연결된 상태도 아니기 때문에 딱히 왜 그런지에 대한 이유도 얻기 힘듭니다.

구글링 해보니, manifest 파일이 잘 못되었거나, 패키지명이 잘못되었거나. 지웠던파일이 지워지지 않고 남아있었다. 라던가.. 

다양한 이유가 있다고합니다.

저의 경우는 모두 아니였습니다.


결론 부터 이야기하자면, 제 경우는 앱 패키징할 때, 

아래와 사이닝 옵션창에서 V2만 체크되어서 그러한 문제가 발생했던 것이었습니다.


V1, V2모두 체크해야 한다.

V1, V2모두 체크해야 한다.


안드로이드 7.0에서는 APK설치시 문제없었으나, 6.0에서 설치시 말썽을 일으키더군요.

아래는 Gradle 빌드 설정 정보입니다.




build.gradle 파일 내용 -------------


android {
compileSdkVersion 27
buildToolsVersion "27.0.0"
defaultConfig {
applicationId "com.myapp"
minSdkVersion 17
targetSdkVersion 27
versionCode 1
versionName "1.0"
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ext {
supportLibraryVersion = '27.0.0'
playServicesVersion = '11.0.4'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

# 이하 중략 #

2017.11.19 기준.최신 SDK입니다.



포스팅 하려는 이유는 이 같은 문제로만 한정하지 않고, 설치 오류가 보다 더 다양한 문제가 있을 수 있다고 생각이 들었습니다.

그 경우, 원인을 찾아야 해결 할 수 있으므로 원인 찾는 법에 대해서 이야기하고자 합니다.


우선 테스트 기기를 PC에 꽂아 주고, CMD창에서 adb shell logcat 명령어로 기기의 상태를 볼 수 있습니다.

물론 Android SDK가 path 걸려 있어야지요.

거기다가 필터를 걸어 볼 수 있는데 대략 이런 식입니다.

adb shell logcat [보고자하는TAG:디버그이상은 D, (E,I,W.등등)] *:S    #*:S 를 넣어줘야 그외는 다 제외시켜주고 보여줍니다.


자세한 설명은 https://developer.android.com/studio/command-line/logcat.html?hl=ko 에 있습니다.

설치와 관련된 경우 PackageManager 태그를 통해 정보를 보여주니까 이렇게 필터를 걸면 되겠습니다.





아래는 필터를 걸지 않고 그냥 봤는데, 아무튼 설치오류와 관련된 정보를 알 수 있었습니다.


재미있는 것이. 어찌 E(Error) 표시가 아니고 W(Warning)으로 표시됩니다.


오류메시지를 확인했으니, 해결방법은 금방 찾죠.

https://stackoverflow.com/questions/44386464/android-app-installation-failed-package-com-my-app-has-no-certificates-at-entry



+ Recent posts