본문 바로가기

Programming

(37)
20.09.09(수) TIL 1. 아침에 release 버전으로 build했는데 앱을 실행하자마자 죽고 난리가 났다. 로그를 찍어보아도 a.a.b 이런식으로 암호화되어서 나오고 통신하는 값은 다 null값이 뜨고 무언가 이상했다. 다행히 스토어에 올라간 버전은 정상 작동되었는데.. 처음에는 서버의심하다가 안드로이드 스튜디오 문제인가 하면서 한 시간 가량을 헤맸다. 그러다 뭔가 build 하는 과정에서 잘못된 것 같아서 commit 창에서 변경된 사항을 보았더니 minifyEnabled=true 로 변경되어있었다. 나는 이걸 변경한 적 없으므로 일단 minifyEnabled=false로 되돌렸더니 동작은 잘 되었다. 그 다음에 이게 뭐지?하면서 찾아보니까. 코드를 난독화하는 설정이었다. 클래스와 멤버 이름을 줄여서 로그 찍을 때 a...
20.09.08(화) TIL 1. fcm 푸시 보내는 형식이 안드로이드와 iOS가 달라서 변경할 필요가 있었다. 기존에 notification이 아니라 data에 내용을 넣어달라고 요청했는데 iOS는 notification이 있어야 알람이 가나 보다.. 문제는 안드로이드가 백그라운드에 있을 때 onMessageReceived가 호출되지 않아서 푸시를 클릭했을 때 액티비티 이동처리를 할 수 없고 무조건 홈화면으로 간다는 것.. 그래서 click_action을 추가해달라고 요청한다음 해당 manifes에 intent-filter를 넣어서 인텐트로 data정보를 받을 수 있도록 처리하였다. https://knoow.tistory.com/182 2. 태블릿에서 이미지뷰가 잘리는 현상이 발생했다. scaleType=centerCrop으로 했..
20.09.07(월) TIL 1. 플레이 스토어에서 '기기가 이 버전과 호환되지 않습니다'라고 나오는 문제가 발생했다... 콘솔에서 보니 지원되는 기기가 0이었다. 디바이스의 특정 하드웨어인 카메라 기능을 사용하기 때문에 앱의 manifest.xml 파일에 아래와 같이 선언하였는데 이 코드가 문제였다. 우선 안드로이드 SDK에 정의된 camera2에는 플래그가 없고, required 속성을 지정하지 않아 기본값이 true가 되었다. 이 경우, 기기에 지정된 기능이 없는 경우 앱을 사용할 수 없기 때문에 어떤 장치도 이를 지원하지 않는다고 나온다. 그래서 모든 기기에 camera2가 없으니 sdk버전과 상관없이 설치가 안 되었던 것이다. 그래서 아래와 같이 변경하여 업데이트 하였다. 일주일만에 플레이스토어 승인 받았더니 바로 이런 문..
20.09.03(목) TIL 1. firebase crashlytics 라이브러리 추가하고 강제로 에러 나게 하는 테스트코드도 작성해서 빌드했는데 콘솔의 대시보드에서는 에러가 보고되지 않았다. 객체를 생성해주지 않은 것 같아서 예제 코드에서 catch 구문에 FirebaseCrashlytics.getInstance().recordException(e) 이 한 줄 추가해주었더니 잘 되었음! https://stackoverflow.com/questions/49528780/fabrics-crashlytics-with-firebase-cant-be-disabled-for-debug-builds/52135955 https://black-jin0427.tistory.com/210 2. AES 암호화에서 initVector랑 secretKey값..
20.09.02(수) TIL 1. 어제 master 브랜치에서 작업을 했는데 변경사항들을 dev로 다시 가져오고 싶어서 rebase를 사용함. 원래 dev에서 작업하고 master에 병합해야하는데.. 빨리 버전 업데이트 해야 한다는 생각에 마음이 급해서 그냥 master에서 작업해버림.. 2. 플레이스토어에 버전 1.0 올려서 심사중인데 버전 1.1을 올리게 되면 1.0심사는 그대로 멈추게 되는 것인지 1.0과 1.1 심사가 동시에 이루어지는지 궁금했다. 1.0이 비활성화된다고 콘솔에 뜨는 것으로 보아 전자가 맞는 것 같긴한데 그래도 정확하게 확인을 하기 위해 고객센터에 문의해 보았다! 마음이 급해서 메일 보내놓고도 채팅으로 물어보려고 하는데.. 코로나로 인원이 없는지 자꾸 채팅이 어렵다고 나왔다. 그래도 버튼 활성화 되길 기다려서..
20.09.01(화) TIL 1. 서버에서 이전 반납사진이 나타난다는 이슈를 전해듣고 확인해보았다. 처음에는 클라이언트에서 따로 사진주소를 저장하지 않는다고 서버확인이 필요하다고 답변했는데 차장님이 글라이드 캐시 삭제 해주어야 한다고 알려주셨다. 차장님이 안 알려주셨으면 헤맬 뻔.. https://zladnrms.tistory.com/89 2. 이미 플레이스토어에 업로드한 버전에서 앱이 죽는 현상이 발생했다... 이용내역에서 정렬이 안 먹길래 string으로 오는 pk값을 int로 변경하고 잘 정렬되는 것 확인한 다음에.. 아 맞다 그럼 다른 부분도 바꿔야겠구나! 이러면서 공지사항이나 문의내역에도 똑같이 적용했는데.. 상용서버에서는 공지사항이나 문의내역 데이터가 없어서 테스트를 못했다. 문제는 공지랑 문의는 pk가 아니라 날짜를 기..
20.08.31(월) TIL 1. 보안을 위해 키저장소 정보를 build.gradle에 입력하지 않고 keystore.properties 파일을 생성하여 따로 저장하였다. gradle에서는 이 파일을 불러와서 빌드하도록 하였다. https://javalism.tistory.com/87 2. 드디어 앱 첫 출시했다!!! 상용서버가 너무 늦게 구축되어서 주말도 반납하고 개발하고 테스트했는데.. 어쨌든 장장 5개월의 여정이 매듭 지어졌다. 사실 이제 진짜 시작인 듯하지만. 그래도 이것저것 고객사 요구 다 들어주면서ㅠㅠㅠ 기획 계속 추가되고 변경되는 거 반영해가며.. 혼자 개발 다 해낸 내 자신이 뿌듯ㅎ 무사히 통과가 될지는 모르겠지만 어쨌든 차장님이 자랑스럽다고 칭찬도 해주셨다ㅎ 3. 앱 출시하려고 보니까 apk파일말고 aab 파일을 업..
20.08.28(금) TIL 1. 서버에서 SSL인증서 발급을 안 했다며 통신할 때 인증을 무시하도록 설정하라고 요청이 왔다. 일단 기존대로 보냈더니 java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. 이런 에러 메시지가 발생해서 열심히 구글링해 봄. OkHttpClient.Builder 객체를 커스텀해서 예외처리를 해 주어서 해결했다. 참고: https://stackoverflow.com/questions/6825226/trust-anchor-not-found-for-android-ssl-connection 2. 어제 debug/release 구분해서 환경설정 해주고 끝인 줄 알았는데 막상 build하니 에러가 났다..