-
[비공개] iOS 13에서 deviceToken description 의 결과..
예전에 만들었던 앱을 iOS sdk 13을 사용하도록 업데이트를 하고 있습니다 iOS8을 쓰던 앱을 iOS 13버전에 맞추려니 몇가지 호환성 부분에서 문제를 발생시키는군요 그중에 하나가 apns deviceToken 문제입니다 과거에 쓰던 코드입니다 - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken _deviceToken=[[[[deviceTokendescription]stringByReplacingOccurrencesOfString:@""withString:@""]stringByReplacingOccurrencesOfString:@""withString:@""]; didRegisterForRemoteNotificationsWithDeviceToken 호출시에 NSData 형태의 deviceToken 값을 받을수 있는데 description 속성값을 이용해서 실제 string 형태의 device token 값을 추출했는데 과거 sdk에서 오던값과 iOS 13에서 오는 description 속성값이 바뀌었습니다. 이런식의 값이 오더라구요 {length=32,bytes=0xfbebc41bd36394076c22bf25e4b58b7a...bddc931ce847f6..추천 -
[비공개] iOS 앱스토어 심사에서 발견된 crash 파일(크래시 리포트) 분석하기
앱스토어에 앱을 등록하게되면 심사 담당자에 의해서 앱이 검수가 되고 이 검수를 통과해야만 앱스토어에서 배포가 가능합니다 심사 담당자(?)는 애플 가이드라인에 맞는 여러가지 항목들을 체크하는것으로 보입니다. 앱스토어 가이드라인의 정책적인 측면 이외에도 앱이 어디선가 갑자기 오류가 발생하여 비정상적인 종료가 발생하는지도 겸사겸사 점검을 하게되는데 검수중에 비정상적인 앱의 종료가 발생되면 해당 크래시 로그파일과 함께 심사가 reject 되어 돌아옵니다. 당연히 이 문제를 해결하기 위해서는 이렇게 첨부된 크래시 내용을 분석해봐야겠죠? 심사 담당자가 어느어느 부분에서 크래시가 발생했다 라고 남겨주긴하는데 이 힌트만으로 문제점을 찾을수 있다면 물론 가장 베스트일것 입니다. 그런데 그렇지 못한 경우도 많을것..추천 -
[비공개] 애플의 업데이트 요청 그리고 인증서 오류
Wegreatlyvaluetheworldwidedevelopercommunity,andappreciateyourcommitmenttomakingadifferenceinpeople’slivesthroughthepoweroftechnology.ToaccommodatedeveloperswhomayneedadditionaltimetoupdatetheirexistingappsontheAppStore,thedeadlineforadheringtotherequirementsbelowhasbeenextendedtoJune30,2020.AppsforiPhoneoriPadmustbebuiltwiththeiOS13SDKorlateranduseanXcodestoryboardtoprovidetheapp’slaunchscreen.iPhoneappsmustsupportalliPhonescreensandalliPadappsmustsupportalliPadscreens.AppsforAppleWatchmustbebuiltwiththewatchOS6SDKorlater.AppsthatauthenticateorsetupuseraccountsmustsupportSigninwithAppleifrequiredbyguideline4.8oftheAppStoreReviewGuidelines.AppsintheKidscategorymustbeinfullcompliancewithguideline1.3andguideline5.1.4.oftheAppStoreReviewGuidelines.AppsusingHTML5mustbeinfullcompliancewithguideline4.7sections4,5,and6oftheAppStoreReviewGuidelines. 얼마전에 애플에게서 이런 메일이 왔습니다 6월 30일까지 앱을 업데이트 해야한다고 하네요 iOS 13..추천 -
[비공개] nginx permission denied
웹서버를 처음에 설정할때 항상 삽질하게 되는것들이 있다 nginx 에서 error.log에 permission denied 가 나타난다면 아래 셋중에 하나를 시도해보자 chcon -R -t httpd_sys_content_t /var/www/yoursite setsebool-Phttpd_can_network_connecton sudochmodo+x/home/ec2-user/추천 -
[비공개] minio를 이용해 로컬개발환경에 s3를 세팅하는 방법
요즘에는 서비스를 운영하면서 누군가가 업로드한 파일이나 이미지를 서버에 저장하기 보다는 s3에 저장하는 경우가 많습니다. 당연히 개발하는 코드도 aws-sdk를 사용해서 s3에 파일을 저장하는 코드를 사용하겠죠 아마도 s3를 이용해서 어플리케이션을 만들고 계신 여러분들은 서로 다른 계정의 access key와 secret을 이용해서 개발환경에서 쓰는 계정, 라이브환경에서 쓰는 계정 이렇게 나눠 쓰실수도 있고, 같은 계정을 쓰되 버킷을 다른곳에 저장하시는 분들도 계실거예요 근데 s3를 aws 계정없이도 로컬개발환경에서 셋업해서 로컬에서만 쓰는용도로 쓰면 매우 좋겠다 라는 생각이 듭니다 바로 이럴때 쓸수 있는 minio를 소개합니다. https://min.io/ MinIO | High Performance, Kubernetes-Friendly Object Storage MinIO's High Performance Object Storage is Open Source, Amazon S3 compatib..추천 -
[비공개] 이미 진행중인 프로젝트에 vue 직접 추가해보기
vue-cli를 이용해서 vue 프로젝트를 직접 생성하면 webpack, babel 을 포함안 모든 설정이 아주 군더더기 없이 깔끔하게 설치되기때문에 별다른 고민을 할필요가 없습니다. 매끄럽게 vue 기반의 프로젝트를 실행할수 있습니다. 그런데 이미 jquery기반의 프론트엔트 프로젝트를 운영중이라면 막상 저렇게 적용하기는 어렵죠 webpack설정부터 babel, vue-loader까지 직접 설정을 해야합니다. 기존에 webpack을 사용하고 있었다면 기존 webpack설정에 vue를 위한 설정을 더해야하구요 그런데 제가 못찾는건지 아쉽게도 vue.js 홈페이지에서 해당 내용이 없더라구요 마침 비슷한 고민의 다른분들의 포스팅을 참고하여 수월하게 기존프로젝트에 vue를 추가하는 작업을 했습니다. nodejs 기반의 샘플프로젝트인데 한번 차근차근 따라해볼까요 일단 php가 되었든 java가 되었..추천 -
[비공개] mongodb 3.2에서 4.2 로 업그레이드해보니
mongodb 서버를 이전해야할일이 생겼는데 구서버의 mongodb는 3.2버전, 신서버의 mongodb는 4.2버전이더라고요 아무래도 메이저 버전의 차이가 있어서 기존 호환성이 많이 깨지거나 마이그레이션이 실패하면 어쩌나 걱정을 많이 했는데 생각보다 어렵지 않은 작업이었습니다. 아마도 고급 쿼리를 많이 쓰지 않은탓도 있던것 같습니다. mongodump와 mongorestore를 이용한 데이터 옮기기는 아무런 문제없이 매우 쉽게 성공하였습니다 백업(/backup/mongodump-latest 폴더에 백업파일 생성) # mongodump --out /backup/mongodump-latest --db 디비명 복원(/backup/mongodump-latest의 백업파일을 복원) # mongorestore /backup/mongodump-latest 일단 데이터 덤프와 복원이 너무 쉽게 한방에 되었고 데이터를 올렸으니 mongodb를 실행하고 어플리케이션을 실행해보았습니다. 역시 너무 쉽게 생각했었나요..추천 -
[비공개] 구형 리눅스(centos5)에서 아파치 2.4 설치하기
아주 오래된 구형 리눅스가 있습니다. centos5가 설치되어있더랬죠 이곳에 아파치 2.4버전을 설치하는 방법입니다. 검색해보니 생각보다 어렵지 않았습니다. 일단 기존의 아파치를 삭제해줍시다 yum을 통해 설치했을수도 있고, 직접 설치하셨을수도 있겠죠? $ ps -ef | grep httpd $ service httpd stop $ yum remove -q httpd $ find / -name apachectl $ rm -rf /usr/local/apache 무사히 삭제하셨다면 이제 설치를 해봅시다 현재 가장 최신 버전이 2.4.43 버전이네요 다운을 받습니다 $ cd /usr/local/src $ wget http://ftp.daum.net/apache//httpd/httpd-2.4.43.tar.bz2 $ tar -jxf httpd-2.4.43.tar.bz2 그리고 추가로 apr과 apr-util을 설치해야 합니다 $ cd /usr/local/src/httpd-2.4.43/srclib $ wget http://www.trieuvan.com/apache//apr/apr-1.6.5.tar.bz2 $ wget http://www.trieuvan.com/apache//apr/apr-util-1.6.1.tar.bz2 $ tar -jxf apr-1.6.5.tar.bz2 $ tar -jxf apr-util-1.6..추천 -
[비공개] gitlab 사용시 401 Unauthorized while acce..
gitlab으로 레포지토리 몇개를 옮겼는데 운영중인 서버에서 git clone을 하려니깐 아래와 같은 오류가 발생하더라구요 error:TherequestedURLreturnederror:401Unauthorizedwhileaccessing 구글링 해보니깐 git 버전이 낮아서 그러니 업그레이드 하라고 하더라구요 그래서 설치된 git 버전이 무엇인지 보니깐 1.7.1 이었습니다. 이걸 최신 버전으로업그레이드 해야겠네요 그런데 yum update 로는 최신 패키지가 받아지지 않아서 아래의 방법을 사용했습니다 사용하는 centos 버전에 따라 설치를 해주시고 yuminstallhttp://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm -or- yuminstallhttp://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-1.noarch.rpm -or- yuminstallhttp://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm $ yum install git 하면 끝 $ git --version 2.22.0 최..추천 -
[비공개] 애플 아이폰 급속충전(고속충전)과 무선충전에 대해 알아보자
아이폰8 이후의 모델에서 무선충전 & 유선급속충전이 가능합니다 무선충전 애플의 무선충전은 Qi 방식을 지원하며 최대 7.5w의 전력으로 충전이 가능합니다. 무선충전기가10w이상을지원해도 아이폰은최대7.5w의전력까지만충전이가능합니다 그래서 대부분의 무선고속충전기들이 아이폰은 7.5w라고 별도로 표시하고 있습니다 벨킨의 무선충전기 역시 상품 상세설명에 이렇게 적혀있는것을 볼수 있습니다. 급속충전 애플은 아이폰의 배터리를 30분만에 최대 50%까지 충전할수 있는 경우 급속충전이라는 표현을 사용합니다 아이폰에는기본적으로5w충전기와USB-A라이트닝케이블이제공되는데요 아직도 5w 충전기를 제공하고 있는 터라 욕을 많이 먹고 있죠 이걸로는 급속 충전을 할수가 없거든요 아이폰11만해도 200만원에 육박하는 고가의 기기인데 번들..추천