Monday, February 29, 2016

iOS 앱 버전 정보 불러오기

NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

Android 앱 버전 정보 불러오기

String version;
try {
PackageInfo i = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
version = i.versionName;
} catch(NameNotFoundException e) {
}

Sunday, February 28, 2016

C++ fast integer square root(sqrt)

int isqrt(int n) {
unsigned int c = 0x8000;
unsigned int g = 0x8000;

for (;;) {
if (g*g > n)
g ^= c;
c >>= 1;
if (c == 0)
return g;
g |= c;
}
}

Tuesday, February 23, 2016

Node.js kill script

#!/bin/bash
PID=` ps -ef | grep node | grep -v grep | awk '{print $2}'`
`kill $PID`

Saturday, February 13, 2016

안드로이드 앱 업데이트 직후 인앱 결제가 안되는 문제(-1005 user cancelled)

안드로이드 앱 업데이트 직후 인앱 결제가 안되는 문제는 구글 플레이 스토어에 캐쉬가 이전 버전으로 남겨져 있기 때문이다.
왜냐면 구글 플레이 스토어는 스토어에 등록된 최신 버전보다 현재 버전이 더 높으면 결제가 안되는데 
구글 플레이 스토어 캐쉬가 남아 있어서 최신버전이 이전버전으로 되어 있고, 실제 설치된 앱의 버전은 최신버전이기 때문에 버전의 역전 현상이 발생한다.
(예를 들어 스토어 최신버전은 1.6.5이고, 이전버전은 1.6.4인데, 
유저는 1.6.5를 설치했는데도 불구하고, 캐쉬에는 최신버전이 1.6.4라고 표기되는 경우에는 인앱결제가 안된다.)

따라서 다음 링크를 참고하여 다음과 같이 유저의 행동을 안내한다.

1. 설정 > 애플리케이션 > 구글 플레이스토어 > 클리어 데이터&클리어 캐쉬
2. 설정 > 계정 > 구글 > 계정 삭제 
3. 단말기 재부팅
4. 설정 > 계정 > 구글 > 계정 추가