Google Play 개발자 계정 간 앱 이전하기
·
Dev experience/Android
이번에 회사에서 기존 개발자 계정에 있던 앱을 새로 만든 비즈니스 계정으로 이전해달라는 요청을 받았다. 어떤 과정을 거쳐 앱 이전이 완료되었는지 공유해본다. 기존 개발자 계정에서 이전 신청하기앱 이전하기 메뉴를 누르면 위와 같은 화면이 보이고 트랜잭션 ID, 새 계정 트랜잭션 ID, 새 개발자 계정을 입력해줘야 한다. 이전 이유와 비즈니스 관계는 각자 상황에 맞게 선택하면 된다. 트랜잭션 ID 입력하기여기서 트랜잭션 ID는 이전을 신청하는 쪽의 트랜잭션 ID를 입력해야하는데 아래 페이지에서 거래 ID를 확인하면 된다.나의 경우에는 중간에 registration이라는 글자가 있어 그 뒤쪽만 복사해 입력했다. 새 계정 트랜잭션 ID는 같은 방식으로 확인할 수 있고,최근에 생성해 메일에 결제 내역이 있다면 메..
Android Studio error loading build artifacts 해결
·
Dev experience/Android
이번에는 정말 기이한 현상을 만났다. 제목에서 일부 내용이 보일텐데 빌드 시작조차 되지 않는 현상이었다. 문제 발생 이전 상황기존 groovy를 사용하던 build.gradle을 모두 kts로 변환하고,toml을 사용해 version catalog를 도입했다. 그리고 테스트를 위해 여러번 빌드를 수행했고 실제로 앱이 실행되는 것을 확인했다. 이후, Android Stuido Narwhal Feature Drop 2025.1.2 버전으로 안드로이드 스튜디오를 업데이트하고아래와 같은 현상이 발생되기 시작했다. Gradle sync 이후 빌드 시 에러 발생Error loading build artifacts from: ~/build/intermediates/apk_ide_redirect_file/debug/c..
Full Screen Intent 권한 관련 업데이트 거부
·
Dev experience/Android
이번에는 Full Screen Intent 권한 선언에 관련하여 업데이트를 거부당하고 문제를 해결한 내역을 공유해보고자 한다. 대체 어떻게 선언을 한걸까먼저 앱에 대한 간단한 소개를 하자면, 일단 웹뷰를 보여주는게 거의 모든 기능이었다. 여기서 브릿지 함수 등은 웹뷰 동작이라고 제외하게 되면 실제 네이티브에서 사용하는 기능은 통화 기능이었다. 따라서 내가 선택했던 권한 선언은 아래 이미지와 같다. 심사를 제출해보자이제 위에서 본 선언을 토대로 심사를 제출해보았다. 글 제목에서 예상하다시피 당연히 결과는 업데이트 거부였다.이런 메일을 받고 나는.. 내 앱에 통화 기능이 있다니깐?!이라는 억울한 심정이 있었고.. 저희 앱에는 통화 기능이 있는데 권한 선언이 잘못된 점이 없다고생각한다는 내용을 담아 이의 신청..
Android Tester 환경 구축하기(from direct APK to Firebase App Distribution)
·
Dev experience/Android
이번 글에서는 테스터 환경을 어떻게 변화시켜왔는지 공유해보려 한다. 이 과정은 체감상 내 답답함 80%, 개척 20% 정도의 시간 소요가 있던 작업이다. 윗 문장을 이해하기 힘들 수 있다. 내 시간 흐름이 어땠는지 적어보겠다. APK 직접 배포하기회사에 처음 들어와서 어떤 업데이트 사항이 생기면 완성된 결과물을 QA팀에 전달해야 했다. 이 때, APK를 직접 빌드해서 메일로 전달했다. 초반에는 귀찮지 않았다. 그 이유로는드디어 내가 회사에서 일을 하는구나메일 용량 제한에 제약이 없다.그렇게 나는 점점 배포해야할 앱이 많아지고,결국 그룹웨어가 변경되고 나서는 메일함에 용량이라는 제약이 생기기 시작했다. 내가 QA팀에 APK를 전달할 때마다 메일함이 차오르기 시작했다.(+ 타 부서에서 설치파일을 원하는 경우..
Android Add Resource Value With Build Type And Flavor
·
Dev experience/Android
이번 글에서는 build type과 flavor에 따라 resValue를 추가하는 작업을 해볼 것이다. 이게 왜 필요했을까언제나 그렇듯 평범한 버그 수정, 신규 기능 추가를 반복하던 중다른 서버 주소 줄테니 이것도 따로 빌드해줘이런 요청을 받은 것이다. 물론 이런 요청이 단발적이라면 모를까내가 듣기로는 이후로 몇 번은 더 받을 요청이라는 생각이 들었다. 그래서 아예 flavor를 하나 추가해 debug, release 빌드 타입을 포함한 총 4개의 빌드를 구성했다. 방법 설명여기서 방법이 갈린다. 최신 프로젝트 생성 시엔 build.gradle.kts가 기본으로 설정되기에Groovy, Kotlin 모두 적용법을 찾아보았다. Groovy에서 적용하기android { ... buildTypes { ..
Android EditText Text Repeating(글자 복제되는 현상)
·
Dev experience/Android
오늘은 EditText에서 문자 입력 시 글자가 계속 복제되었던 문제를 소개한다. 발생 배경ID 입력을 모두 소문자로 강제해달라는 요구가 있었다. 이전에 모두 대문자로 강제해본 기억이 있었고, 그 때 사용했던 방법은 EditText.setFilters 였다.editText.filters = arrayOf(InputFilter.AllCaps())이런 식으로 말이다. 그래서 InputFilter를 잘 조절하면 소문자 강제도 어렵지 않겠다는 생각이 들었다. 그렇게 탄생한 코드는 아래와 같다.editText.filters = arrayOf(InputFilter { inputText, i, i2, spanned, i3, i4 -> inputText.toString().lowercase()}되게 합리적인 코드라고 ..
Store Signed APK 실행 시 Play Store로 이동
·
Dev experience/Android
이번 글은 누군가에게 전혀 겪어보지 못한 상황일 것이다. 반면에, 나에게는 매우 당황스러운 상황이었다. 문제 상황스토어 비공개 테스트 트랙에 앱 번들(aab)를 업로드했다. APK 파일을 따로 달라는 요청이 있었다. 따라서, 서명된 범용 APK를 다운로드해 전달했다. 그런데 실행하자마자 Play Store로 이동하면서 Google Play에서 다운로드하라는 메시지가 보였다. 대체 뭐가 문제일까?도저히 머리로는 이해가지 않는 동작이었다. 따라서, 구글 정책 변경 사항이겠거니.. 하며 Play Console 고객센터로 문의해보았다.  짧게 요약하면 APK 실행 관련해서는 안내가 불가능하고 Google Play에서 설치 버튼을 눌러 내용이었다. 보다시피 내가 원하던 답변은 아니었다. 이 찝찝함을 안고 다른 설..
Android Share Image File In 2way
·
Dev experience/Android
이번 주제는 제목 그대로 이미지 파일을 2가지 방법으로 소개하는 것이다. 근데 굳이 2가지 방법을..?나도 굳이 같은 기능을 2가지 방법을 생각하면서 개발하고 싶지는 않았다. 처음 프로젝트에서 사용한 방법은 ShareCompat을 사용하는 것이었다. 최대한 Jetpack 라이브러리를 활용하고 싶었고 그 욕심이 철저히 반영된 코드였다. 물론 기능도 무사히 동작했다. 하지만 또다른 프로젝트는 android support 버전을 사용 중이다.(Jetpack이 없다는 말이다.) 따라서 Jetpack ShareCompat을 사용할 수 없었고, 그에 따라 기본 Intent를 사용해 처리해야만 했다. support library에도 ShareCompat은 있지만 해당 클래스의 동작이 동일하다는 보장을 하기 어렵다.(..
Android add library using toml
·
Dev experience/Android
toml 파일을 사용하게 된 계기이번 신규 프로젝트를 진행하게 되었는데,그에 따라 프로젝트 자체를 새로 생성하면서 build.gradle 언어를 Kotlin DSL로 설정했더니Android Studio Koala를 쓰는 나에게 toml이 포함된 프로젝트가 생성되었다. 여기저기 오픈소스 라이브러리에서 혹은 developer 사이트에서도 자주 볼 수 있는 녀석이라이번 기회에 써보기로 했다. Retrofit 추가해보기어차피 대부분 앱은 네트워크 작업이 필요하고 그에 따라 가장 대중적인 라이브러리는 단연 Retrofit일 것이다. 하지만, 기존 toml을 사용해본적 없는 나로서는 상당히 검색할 시간이 필요했다. 먼저 toml 파일 수정하기[versions]... //retrofit = "2.11.0"serial..
Android QR Code Generation
·
Dev experience/Android
기능 추가 배경QR코드를 통해 로그인 정보를 공유한다. 물론 로그인 정보는 민감한 정보이므로 암호화가 필요하다. 장점서버가 필요없다.OS간 직접 파일을 옮기는 것이 아니기에 플랫폼 제약이 없다. 단점길이에 제한이 있다.카메라만으로도 정보가 보일 수 있어 비교적 보안에 약한 편이다.(암호화를 한다고 해도 말이다.) 라이브러리 추가하기여기서 사용한 라이브러리는 이전 글에서도 등장한 적이 있다.https://github.com/journeyapps/zxing-android-embedded GitHub - journeyapps/zxing-android-embedded: Barcode scanner library for Android, based on the ZXing decoderBarcode scanner l..