본문 바로가기

개발

[React Native] CodePush를 이용한 앱 업데이트 1. 서론 Play store는 조금 덜한 편이지만 App store의 심사는 정말 까다롭다. 물론 까다로운 심사 절차에는 많은 장점도 있지만, 당장 배포가 리젝트된 나에게 있어서는 정말 짜증나는 일이 아닐 수 없다. 심지어 저번 심사에서는 언급조차 없던 부분이 다음 심사에서는 갑자기 리젝트 요인이라니... 까라면 까야하지만 정말 힘들다. 이런 짜증들을 해결할 수 있는 방법을 찾아보다가 CodePush라는 것을 알게됐다. 마이크로소프트에서 서비스 중인 오픈 소스인데 javascript 부분에 한해서 심사 없이 배포를 진행해준다. 이미지 등도 함께 지원해주긴 하지만 정확한 정보는 여기서확인하면 된다. 당연한 얘기겠지만 Native를 수정하게 되면 업데이트 한 앱에서 무수한 크래쉬가 날 것이기 때문에, Na.. 더보기
[Android] Debug 버전으로는 실행되는 데 Release Crash 나는 경우 1. 서론 최근 앱 내 이벤트 관련하여 리액트 네이티브 환경에서 카카오톡으로 공유하기 기능을 개발할 일이 있었는 데, 현재 앱 환경에서 제대로 동작하는 오픈 소스가 존재하지 않아 react-native-kakao-share-link라는 오픈 소스를 처음으로 만들게 됐다. iOS는 바로 전 포스팅에서 적은 문제를 해결한 후 디버그 모드와 릴리즈 모드 모두에서 성공적으로 작동했는 데 문제는 안드로이드였다. 디버그 모드에서는 완벽하게 작동했는 데 릴리즈 모드에서는 문제가 난 것이다. 거의 하루 종일 삽질한 내용을 정리해두는 겸, 그리고 비슷한 문제를 겪는 사람들에게 도움이 되고자 이 포스팅을 적는다. 2. 원인 결론부터 말하자면 원인은 앱 배포(릴리즈) 시 코드 축소, 난독화, 최적화를 하는 경우, 카카오 S.. 더보기
[React Native] ld: symbol(s) not found for architecture x86_64 해결방법 1. 서론 이번에 회사에서 이벤트를 위한 카카오 링크(공유) 기능을 개발해야 했는 데, 기존에 있던 오픈 소스들이 제대로 작동하지 않아서 새로 오픈 소스를 개발했다. 안드로이드는 잘 작동됐고, 문제는 iOS 였는 데 계속 "ld: symbol(s) not found for architecture x86_64" 오류가 나와서 정말 머리가 터져버리는 줄 알았다... 혹시나 나와 같은 문제를 가지고 고통받는 사람이 있을까 포스팅을 작성한다. 2. 원인 나의 경우 이번 오픈 소스를 kakao sdk v2를 기반으로 개발했기 때문에, 안드로이드는 kotlin으로 iOS는 swift로 개발했는 데, 이 오류가 생성된 원인으로 예상되는 것은 swift를 빌드할 때 버전 상 오류로 느껴졌다. 기존에 사용하는 모듈들을 .. 더보기
[React Native] Facebook SDK(react-native-fbsdk) 적용하기 1. 서론 저번 포스팅에서는 Firebase Analytics를 설정하는 법에 대해서 포스팅했다. 이번에는 마케터 분의 요청으로 Facebook SDK를 설정하게 됐다. 그렇게 어렵지는 않지만 File.swift 파일을 생성하는 부분이 공식문서에 나와있지 않아서 구글링으로 해결법을 찾았다. [👋 잠깐] 개발 환경 react-native 0.63.4 typescript 3.8.3 @types/react-native 0.63.2 추후에 이 포스팅을 보는 분들 및 다른 버전을 사용하시는 분들은 아래의 내용이 다소 차이가 생길 수 있으니 유의하기 바란다. 2. 필수 모듈 설치 react-native-fbsdk-next 4.3.0 npm install react-native-fbsdk-next cd ios && .. 더보기
[React Native] Firebase Analytics(@react-native-firebase/analytics) 적용하기 1. 서론 우연한 만남을 계기로 창업을 준비하던 나와 팀원은 프릭스 헬스케어라는 회사에 입사하게 됐다. 백엔드 개발자로써 들어가고자 했지만, 나와 함께하는 팀원은 백엔드, 나는 프론트 개발자로 들어가고 3~6달 후 프론트 개발자를 채용한 후에 백엔드로 넘어가기로 했다. 그리하여 입사하고 처음 맡은 업무가 닥터아이라는 영유아 성장 발달 모니터링 앱에 Firebase Analytics를 적용하는 것이었다. 설정 도중 크래쉬가 나는 경우가 생겨, 혹시나 다른 사람들도 그런 경우가 있을까해서 이 포스팅을 남긴다. [👋 잠깐] 개발 환경 react-native 0.63.4 typescript 3.8.3 @types/react-native 0.63.2 추후에 이 포스팅을 보는 분들은 아래의 내용이 다소 차이가 생길.. 더보기
[React Native] 다른 앱(play store, instagram 등) 열기 1. 서론 아래의 화면은 Antodo개발 1.0 초기 버전의 설정 페이지다. 어플을 개발하고 배포하고 나면 앱 리뷰 남기기와 앱 인스타그램 등의 타 어플을 바로 열 수 있는 코드가 필요하다. 처음에는 방법을 몰라서 webview로 띄웠는 데 너무 불편해서 1.0.2 버전에서 방법을 찾고 수정했다. 생각보다 간단하니 잘 따라오기 바란다. 2. 방법 매우 간단하게 Linking이라는 react native 내장 함수를 사용하면 된다. 2-1. iOS 설정 내가 진행한 프로젝트의 경로로 진행하도록 하겠다. ~/Antodo/ios/Antodo/info.plist 파일을 연다. ~/[만든 프로젝트 명]/ios/[만든 프로젝트 명]/info.plist 아래의 코드를 추가한다. app store, instagram,.. 더보기
[Antodo] 첫 어플리케이션 릴리즈 프로젝트 계기 처음에는 학교 동기와 함께 아이디어 회의를 도와주는 화이트보드와 포스트잇 어플을 만들려고 했지만... 이미 나와있는 프로젝트가 빠방했던 관계로... 접게 됐다. 그러던 와중 함께 하게 된 디자이너 친구까지 셋이서 다시 아이디어 회의를 시작했고, 게으른 사람들을 위한 투두를 만들어보기로 했다!! 기술 스택 - React Native - TypeScript - SQLite 사용한 툴 - Notion - Visual Studio Code - GitHub 회의 방식 회의는 매주 수요일에 진행됐다. 시간은 다소 유동적이었다. 사이드 프로젝트 형태로 진행됐기 때문에 각자의 일정이 있으면 협의 후 다른 날로 조정했다. 시작 전 항상 회의 안건을 미리 노션에 작성했고, 그 안건에 대한 회의 진행 후 다음 회의까지.. 더보기
[Gatsby] build error "document is not defined" 해결 방법 1. 서론 최근에 tistory에서 Gatsby로 블로그를 옮기면서 처음으로 gatsby를 사용해서 블로그를 개발하기 시작했는 데 여러 가지 난관이 있었다. 그중 가장 짜증 났던 상황이 바로 "document is not defined" 빌드 오류였다. 나와 같은 문제에 직면한 사람들을 위해 내가 찾은 해결 방법을 공유하고자 한다. 2. 해결방법 의외로 해결방법은 매우 간단하다. 나는 document 변수를 화면의 scroll top을 가져오는 데 사용했다. 물론 브라우저 환경에서 당연히 document 변수는 존재하겠지만, 빌드 시에는 이 변수의 존재 여부를 알 수 없기 때문에 나오는 오류라고 생각했고, 따라서 document 변수가 존재하는 지, 그리고 document의 타입이 정의되어 있는지 여부를.. 더보기