앱스토어�도전기
‘보안카드�위젯’�개발자의
노수진�연세대학교
소개
▸ 연세대학교�경영학과�(2009.�3�~�)�
▸ ���������������SW�Developer�(2015.�1�~�2015.�11)�
▸ ��������������������������������모바일�프로그래밍�/�Entrepreneurship�
(2013.�1�~�2015.�1)
목차
▸ 앱�소개�
▸ 보안을�위해�신경�쓴�기능들�
▸ 유료/무료�버전�scheme�나누기�
▸ 걸어온�길�
▸ 앱스토어�리뷰�관리�
▸ Q�&�A
타임라인
▸ 2014년�12월�17일�출시�
▸ 12월�19일�‘금융’�부분�유료앱�1위�
▸ 12월�21일�앱스토어�유료앱�8위�
▸ 2015년�1월�15일�버전�1.1.0�업데이트�
▸ 1월�28일�앱스토어�유료앱�2위�
▸ 2016년�6월�현재,�50~100위권
타임라인
앱�소개
보안카드�위젯
▸ 2014년…�토스,�카카오페이,�네이버페이가�없던�그�시절�
▸ 계좌이체할때�반드시�거쳐야�하는�보안카드�입력을�훨씬�편하게�
▸ https://www.youtube.com/watch?v=xVxYTF_uPIs�
▸ 보안카드를�입력해놓고�쓰는�앱이�없었던�것은�아니었지만�iOS�8에�추가된�신기능인�Today�extension을�활용한�것은�최초
보안�이슈
PRIVACY
1.�iOS�Keychain�Overview
▸ Core�Data,��NSUserDefaults,�plist와�같은�iOS�storage의�일종�
▸ key-value�형태로�사용�
▸ 암호화되어�저장�
▸ Keychain�Group�생성�가능�
▸ 사용자가�앱을�삭제해도�데이터는�보존�
▸ 접근�가능�시점과�접근�권한�세부�지정�가능�
▸ iCloud�Drive로�백업/복원,�multidevice�지원�가능
PRIVACY
Keychain�Group�생성
▸ 다른�앱들이�하나의�Keychain�storage를�공유�
▸ Today�Extension은�모체�앱과�다른�앱으로�취급�
▸ 별도�샌드박스,�App�Id,�Provisioning�Profile�등�
▸ 앱과�위젯이�데이터를�공유하려면�App�Group�/�Keychain�Group�활용�필수
PRIVACY
Keychain�Group�생성
PRIVACY
PRIVACY
앱�삭제후�재설치시�Passcode�뚫리는�문제
▸ 현상�:�Passcode와�보안코드는�사용자의�개인정보이기�때문에�키체인에�저장했지만�잠금�여부는�NSUserDefaults에�저장하고�있었음.�
▸ 앱�삭제후�재설치시�잠금이�풀리고�저장되어있던�보안코드가�고스란히�노출�
▸ 해결�:�키체인에�저장한�내용은�앱이�삭제되어도�남아�있기�때문에�잠금�설정�flag도�키체인에�저장하여�앱�재설치�시에도�보안코드�데이터�보안�유지
PRIVACY
앱�삭제후�재설치시�Passcode�뚫리는�문제
▸ 활용�:�자동�로그인�기능이�있는�앱인데�가끔�로그인이�풀리거나�로그인정보가�사라지는�현상이�있는�경우,�관련�데이터를�NSUserDefaults에�저장하고�있는지�확인�
▸ 실제로�NSUserDefaults에�저장해둔�데이터가�손실되었다는�제보�다수�(Stackoverflow)�
▸ 따라서�로그인이나�잠금�관련된�중요한�데이터는�키체인에�저장�
‣ 애플�공식�가이드에�따르면�키체인에�저장할�만한�데이터는�메모리에�올려두고�사용하지�말라고�권장
PRIVACY
아이폰이�잠금�상태일때�Today�Extension�차단
▸ 아이폰의�잠금�화면에서도�알림�센터를�내려서�확인할�수�있기�때문에,�이때�보안카드가�검색이�된다면�심각한�문제�
▸ 해결�방법�:�접근�가능�시점과�접근�권한�세부�지정
PRIVACY
아이폰이�잠금�상태일때�Today�Extension�차단
PRIVACY
▸ 0�:�success�
▸ -25240~-25279,�-25290~-25329
PRIVACY
▸ 권한이�없을�시점에�데이터�접근�시�발생�
예)�kSecAttrAccessibleWhenUnlocked로�저장한�데이터를�잠금�상태에서�불러올때
PRIVACY
PRIVACY
PRIVACY
멀티태스킹�시�노출되는�앱�스냅샷�블러�처리
▸ iOS�멀티태스킹�시�마지막�VC의�상태가�스냅샷�형태로�남아�있어서�보안코드�노출�우려
PRIVACY
멀티태스킹�시�노출되는�앱�스냅샷�블러�처리
▸ AppDelegate.m
-�applicationDidEnterBackground:
-�applicationDidBecomeActive:
PRIVACY
PRIVACY
iOS�커스텀�키보드�차단
▸ iOS8�에서�처음�소개된�커스텀�키보드�
▸ 키보드�앱이�유저의�모든�입력값을�알�수�있음
▸ AppDelegate.m
PRIVACY
iOS�커스텀�키보드�차단
- application: shouldAllowExtensionPointIdentifier:
BUILD�SCHEME
무료버전�&�유료버전�나누기
▸ 동기�:�수익�극대화�
▸ 무료버전으로�진입�장벽을�낮춰�다운로드�유도�
▸ 무료버전은�은행을�1곳만�등록�가능하고�배너광고�부착�
▸ 인앱결제($0.99)�후�유료버전과�완전히�동일한�기능�제공
BUILD�SCHEME
무료버전�&�유료버전�나누기
▸ xcconfig�파일과�Xcode의�Scheme�기능�활용
BUILD�SCHEME
▸ Base.xcconfig
BUILD�SCHEME
▸ Paid.xcconfig
BUILD�SCHEME
▸ Freemium.xcconfig
BUILD�SCHEME
▸ xcconfig�적용
BUILD�SCHEME
▸ scheme�생성
BUILD�SCHEME
▸ scheme�생성
BUILD�SCHEME
▸ scheme�생성
BUILD�SCHEME
▸ scheme�생성
BUILD�SCHEME
▸ xcconfig�적용�▸ $(xcconfig파일에서�생성한�변수명)�▸ ${xcconfig파일에서�생성한�변수명}
BUILD�SCHEME
▸ xcconfig�적용�
▸ Info.plist
BUILD�SCHEME
▸ xcconfig�적용�
▸ 앱�아이콘
BUILD�SCHEME
▸ xcconfig�적용�
▸ GCC�PREPROCESSOR�MACRO
BUILD�SCHEME
▸ xcconfig�적용�
▸ 매크로로�무료버전에만�배너광고�삽입�
▸ 무료버전에만�사용하는�pod
다운로드�수
걸어온�길
▸ 처음으로�외부에�공개하는�데이터�
▸ ‘국내용’�앱이라는�특성상�한국�앱스토어에만�한정�
▸ 유료�앱�부분에�한정
걸어온�길
▸ 2014년�12월�17일�출시,�19일�‘금융’�카테고리�1위,�전체�18위�
▸ 또�다시�이틀�뒤�21일�전체�8위�(누적)�
▸ 약�한달�뒤,�2015년�1월�28일�전체�2위�(누적)
3746814430
걸어온�길
▸ 1.1�버전�업데이트�시점
▸ 별로�기능�추가�한게�없는데판매량�급�증가�
‣ 이쁜�아이콘의�영향이라고�추측
▸ 처음�5위권�진입한�1월�24일�~�3월�3일(39일)�까지�계속�5위권�유지�
▸ 5위�이내�일때�하루�평균�
▸ 1일�최다�다운로드
걸어온�길
8260211.8330
▸ 10~30위권�유지할�때�
▸ 30~100위�
걸어온�길
30~5010~20
걸어온�길
흥미로운�발견
▸ 2015년�다운로드수�그래프�
▸ 힌트�:�10월�23일
걸어온�길
흥미로운�발견
▸ 2015년�다운로드수�그래프�
▸ 10월�23일�아이폰�6s�국내�출시�
▸ 사람들이�폰을�새로�산�후�/�바꾼�후�새�앱을�다운로드�
▸ 이때를�공략해서�공격적인�마케팅�실시!
앱스토어�리뷰�관리
APP�STORE�REVIEWS
앱스토어�랭킹�알고리즘
▸ 전체�다운로드�수�
▸ 다운로드�증가�추세�
▸ 그리고..�리뷰�평점과�retention!?
APP�STORE�REVIEWS
https://techcrunch.com/2013/08/23/apples-app-store-rankings-algorithm-changed-to-favor-ratings-and-possibly-engagement/
유료앱�상위�100위�앱�중�평점이�최소�4별�이상인�비율
APP�STORE�REVIEWS
앱스토어�리뷰�관리의�필요성
http://www.apptentive.com/blog/app-store-ratings-reviews-guide/
무료앱�상위�100위�앱�중�평점이�최소�4별�이상인�비율
최고매출�상위�100위�앱�중�평점이�최소�4별�이상인�비율
APP�STORE�REVIEWS
앱스토어�리뷰�관리의�필요성
http://www.apptentive.com/blog/app-store-ratings-reviews-guide/
평점�2별인�앱을�다운받을지�고려해보겠다는�비율
평점�3별인�앱을�다운받을지�고려해보겠다는�비율
평점�4별인�앱을�다운받을지�고려해보겠다는�비율
APP�STORE�REVIEWS
앱스토어�리뷰�관리의�어려움�SELF-SELECTION�BIAS
http://www.apptentive.com/blog/app-store-ratings-reviews-guide/
부정적인�경험�후�리뷰를�남기는�비율 긍정적인�경험�후�리뷰를�남기는�비율
▸ 부정적인�경험쪽으로�bias된�유저그룹이�남긴�리뷰와�별점은�대표성을�갖기�어려움에도�어쩔수�없다
APP�STORE�REVIEWS
‘보안카드�위젯’의�리뷰�관리
APP�STORE�REVIEWS
‘보안카드�위젯’의�리뷰�관리
ㅗㅗ
APP�STORE�REVIEWS
‘보안카드�위젯’의�리뷰�관리
ㅗㅗ
▸ 앱스토어�사용자들에게도�도움이�되지�않고�좋을게�없는�이런�리뷰는�우측하단�신고�버튼�활용
APP�STORE�REVIEWS
‘보안카드�위젯’의�리뷰�관리
APP�STORE�REVIEWS
‘보안카드�위젯’의�리뷰�관리
리뷰가�아니고�욕설입니다
▸ 신고가�적합하다면�2~3일�내로�부적절한�리뷰�삭제�
▸ 업데이트�직후�리뷰가�얼마�없을때는�1별�짜리�리뷰가�평균�별점�0.5~1별을�좌지우지�
▸ 평균�별점�1개의�차이는�15%�->�50%�->�96%
‘보안카드�위젯’의�리뷰�관리
APP�STORE�REVIEWS
APP�STORE�REVIEWS
‘보안카드�위젯’의�리뷰�관리
정말�좋은�앱이지만�리뷰�쓰라고�강요�좀�작작해라
평가하기�싫음�안하는거지�할때마다�떠서�내가줄�별은�없다
▸ 좋은�리뷰는�기분이�좋지만�나쁜�리뷰는�개선점을�찾는데�크나큰�도움�
▸ 합당한�리뷰는�받아드려서�앱을�개선
APP�STORE�REVIEWS
LESSON�LEARNED
▸ 대대적인�UI�변화가�있었던�3월�2.0�버전�업데이트�
▸ 기존�유저들의�강한�반발전체
2.0�버전
APP�STORE�REVIEWS
LESSON�LEARNED
▸ 별점�2.5점�
▸ 급격한�변화를�지양하자�
▸ 또�한편으로는…�
▸ 대부분의�유저는�아무�불평없이�잘�사용하고�있을지도�모르지만�강한�불만을�표한�30명�남짓한�리뷰로�인해�낮아진�별점�때문에�다운로드가�감소하고�순위�하락�
▸ 그래도�어쨌든…�
▸ 개인�개발자에게는�별점이�중요하기�때문에�피드백�반영해서�업데이트�예정
APP�STORE�REVIEWS
앱스토어�RATINGS�&�REVIEWS
▸ 앱스토어�내�경쟁이�끝없이�심해지는�요즘�앱스토어�별점은�그�어느때보다�중요�
▸ 별점과�리뷰는�앱스토어에서�내�앱이�발견되고,�유저들이�trial�해보게�하는�중요한�역할
마무리
Q & A
Top Related