분류 전체보기
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcspBtS%2FbtsFU6kxot4%2F3ufgN2xOEFjDUf5mMOLka1%2Fimg.png)
[Flutter] SDK 버전(31)을 낮췄더니 플레이콘솔(33 가져와~)에서 빠꾸
젠장... SDK 31 버전이면 된다해서 31 버전에 맡게 파일 읽어오게 수정하고 프로덕션 새버전을 업로드했다 와 오류가 있네? (벌써 짜증) 열었다 (더 짜증) 외부 저장소에서 파일을 읽기 위해서 SDK 버전을 최소한인 31로 맞췄다. 왜 31로 맞췃냐 하면 READ_EXTERNAL_STORAGE 권한이 맥시멈이 SDK 32이다. 중요한건 33으로 맞춰서 실행하면 READ_EXTERNAL_STORAGE 권한도 의미가 없어져서 FilePicker 플러그인을 사용해도 .txt파일을 못 읽는다. 그래서 31로 맞춰서 다 만들어놨는데, 33 이상으로 하라네 ^^ 음... 그냥 최신 안드로이드는 못쓰든 말든 업로드 부터 해봐야하나?
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FASHmV%2FbtsF7yaJEqO%2Fj0iGqc3LI1miHQEtR9Q2ZK%2Fimg.png)
[플레이스토어] 리젝 원인 분석 2편(유사 어플 비교)
해결 방법을 찾기 위해 유사 어플을 몇 개 찾아봤다. (플레이스토어 검색 : 카톡분석 or 채팅분석 등에서 검색되는 어플들) 어플 1 : - 마지막 업데이트 : 2021년 11월 - 저장권한 : YES - 실제로 접근이 가능한가? : YES 어플 2: - 마지막 업데이트 : 2023년 OO월 - 저장권한 : YES - 실제로 접근이 가능한가? : NO 비교를 통한 결론 : 2024년 3월 기준으로 플레이스토어에 배포를 하려면, SDK 33 이상을 타겟으로 잡아야한다. 유사 어플들의 마지막 업데이트는 주로 2021년임으로 그 상대 SDK는 31 미만으로 추측된다. 그렇기에 내 스마트폰에서도 문제없이 작동했다. 이를 통해 얻은 결론 : App의 타겟 SDK를 31 이하로 맞춰서 개발 및 배포를 시도해보자! ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn3I5C%2FbtsFQyPEu7q%2F23PIKVrkJVHYNDQ4fQOMwk%2Fimg.png)
[Flutter] MANAGE_EXTERNAL_STORAGE 없애기 위한 SDK 변경 시도
MANAGE_EXTERNAL_STORAGE 권한 때문에 플레이 콘솔에서 리젝을 당했다. 그래서 MANAGE_EXTERNAL_STORAGE 없애기로 고민했다. MANAGE_EXTERNAL_STORAGE 없애기 위해선 가장 중요한건 READ_EXTERNAL_STORAGE 권한(SDK 32 이하 에서만 작동)을 살리는 것이 내 가설이였다. 즉, READ_EXTERNAL_STORAGE 을 쓸 수 있는 SDK 32 이하도 바꾸면 정상 작동하지 않을까? 이다. 기존에는 CompileSdkVersion이 33 이였다. 이를 31로 변경하였고, 이에 따른 Flutter dev에서 설치한 플러그인들이 라이브러리 충돌이 일어났다. 플러그인이 이 외에도 많이 있지만, 일일히 수정하며 SDK 33 필수인 라이브러리 들을 SD..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FesUW7S%2FbtsF5EpgDl4%2FT3vK66FLGidlYFzGHAANPK%2Fimg.png)
[플레이스토어] 리젝 원인 분석 1편
리젝 원인 : MANAGE_EXTERNAL_STORAGE 권한을 사용 못함 MANAGE_EXTERNAL_STORAGE 권한이란? MANAGE_EXTERNAL_STORAGE은 어플에서 외부저장소에 접근하기 위한 권한이다. SDK 33(약 2022년 출시 이후된 스마트폰) 이상부터는 READ_EXTERNAL_STORAGE을 사용하지 못하고, MANAGE_EXTERNAL_STORAGE 만 사용해야 한다. 정확히 말하면 SDK 33 이상은 READ_EXTERNAL_STORAGE으로 외부 저장소에 접근하려고 해도 작동안함! 내 App 에서 이 권한은 왜 필요한가? 카카오톡에서 "내보내기" 기능을 이용하면 .txt 파일이 생성된다. 이 파일을 읽어서 분석을 하기에 필요한 권한이다. MANAGE_EXTERNAL_ST..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRj4bI%2FbtsFK7rXroK%2FGThCkLNkDra85DuA2qMtd1%2Fimg.png)
[플레이스토어] 플레이스토어 최초 배포 : 리젝(실패)
2024년 3월 14일 메일이 하나 왔다. 어제 등록한 앱이 리젝되었다는 메일이다. 리젝된 사유는 퍼미션(권한)에 문제가 있었다. 어플에서 카카오톡 채팅 파일을 읽어오기 위해선 READ_EXTERAL_STORAGE 와 MANAGE_EXTERNAL_STRAGE를 두 개를 사용하고 있었다. 한줄 요약 : MANAGE_EXTERNAL_STORAGE 권한 사용 못함 어플리케이션 API 수준이 낮으면 READ_EXTERNAL_STARGE만 사용해도 되지만, API 수준이 높아지더니 인식을 하지못했다. 그래서 MANAGE_EXTERNAL_STARGE를 추가하였다. 문제는 추가한 MANAGE 가 핵심 기능이 아니라는 것이었다. 다시 테스트해봐야겟다
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoRBCd%2FbtsFGqkFTK1%2F2u1IOf7WimSp9drKDYPlFK%2Fimg.png)
개인정보 처리방침 작성하기.. 어렵다
앱 배포를 위해선 개인정보 처리방침을 작성해야 한다 이게 앱을 개발하는 것보다 더 어려운거 같다 그렇다고 이를 위해 돈을 쓰기도 아깝다(캐치시큐 에서 구독제로 이용가능) 오랜 숙제 중 하나인 개인정보 처리방침을 일단(?) 마무리했다 예전에는 개인정보포털(?)인가에서 쉽게 작성할 수 있도록 서비스를 제공하였다고 했는데, 이젠 못한다.(2024년 3월 기준) 하는 수 없이 개인정보포털에서 제공하는 가이드라인을 보고 따라했다. 근데 이게 뭔 소리인지;; 아무것도 모르는 앱 배포자를 위한 꿀팁 가이드를 열면 개인정보 처리방침 작성지침을 봐야한다. 1번부터 22번까지 모두 확인해야 하지만 내 서비스가 무엇인지 알면 어느정도 추릴 수 있다 참고로 [의무] 라고 있으면 반드시 작성해야하며, 이것만 해도 앵간한(?) ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAOhDU%2FbtsFEwZ5RnM%2Fkyod9nkNhtybK6kJSBFxT0%2Fimg.png)
[Flutter] 오픈소스 라이선스 목록 보여주기
결과물 방법 및 코드 1. pubspec.yaml에 라이브러리를 추가한다 dev_dependencies: flutter_test: sdk: flutter flutter_oss_licenses: ^2.0.1 2. 터미널에 아래 명령어를 입력한다 1. flutter pub get 2. flutter pub run flutter_oss_licenses:generate.dart 명령어가 정상적으로 실행이 되면 lib > oss_licenses.dart 파일이 생긴다 구조는 요런식으로 되어있다 3. oss_licenses.dart 에 있는 Package 들을 보여줄 oss_licenses_page.dart 파일을 생성하고 코드를 짠다 class OssLicensesPage extends StatelessWidge..
팀원 해체 및 느낀점
2024년 2월 말쯤 팀원들이 해체가 되었다. 해체 사유 : 회의 시간 때 팀원들의 노쇼 및 미공지 작업량 미완료 주제 선정 간 뚜렷하지 못한 주관 핵심 적인 이유 2가지와 서브 적인 이유 1가지가 있었다. 첫번째는 시간 약속이다. 많이 만날 때는 주 3회정도 디스코드에서 만났다. 이때는 오히려 노쇼를 하는 인원이 있었도 금방 또 만나기에 문제가 없었다. 문제는 주 1회 매주 금요일 오후 7시에 만나고부터 시작이었다. 모든 사람이 본업이 있고, 사정이 있기에 약속 시간을 늦거나 미참여는 이해를 했다. 하지만, 미참여 및 지각시 그 누구도 미리 공지를 하지 않았다. 항상 7시 되기 5분 전에 들어가면 총 4명 중에 가끔 1분이 계시고 나머지는 늦거나 노쇼를 했다. 현업에서 근무를 하시는 분도 지각하거나 노..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNiTm9%2FbtsFoFWFKlB%2FreieAbrvyJoaxTNSf2xZk0%2Fimg.png)
[Flutter] Flutter + Firebase : flutterfire' 용어가 cmdlet, 함수, 스크립트... 2번째 에러 결론
원래는 독립 실행형 바이너리(exe)로 실행을 했었다. 첫번째 에러에서도 에러가 해결은 됬지만, 완전히 Firebase 연동에 실패했다. 한 커뮤니티에서 어떤 개발자(해외)는 자기도 독립 실행형 바이너리(Window) 했는데, 다 안되서 npm 설치해서 했다고 한다. 그래서 본인도 설치를 해서 진행했다. 설치는 간단하다 1번에 있는 nvm-windows 설치하고, Node.js 들어가서 설치하고 컴퓨터 재부팅했더니 npm이 바로 실행이 되었다. 설치하는 것도 들어가면 바로 설치 가능하게 진행되어 있었다. 결론 Flutter + Firebase 연동할 때, 독립 실행형 바이너리 사용하지 말고, npm 설치해서 하면 직빵이다. 참고로 본인은 Window10이다. 명령어들은 안드로이드스튜디오 - 터미널에서 n..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtxWW3%2FbtsFoIsd35n%2F5dEsBNkEfjrZVHWSJRM0L1%2Fimg.png)
[Flutter] Flutter + Firebase : flutterfire' 용어가 cmdlet, 함수, 스크립트 파일... 에러 발생
1. Flutter CLI 설치 및 로그인 : 문제 없음 https://firebase.google.com/docs/cli?hl=ko&authuser=0&_gl=1*139nu86*_ga*MTk4NjA0MTAuMTcwOTI3NTc1Mg..*_ga_CW55HF8NVT*MTcwOTQ0MzY0NC40LjEuMTcwOTQ0NDgzMy40OC4wLjA.#windows-standalone-binary Firebase CLI 참조 | Firebase 문서 firebase.google.com 2. dart pub global activate flutter_cli 명령어 : 문제 없음 3. flutterfire configure --project=chatana... 명령어 : 에러 발생 에러명 : flutterfire' ..