아이폰 앱을 개발하면서 중요하면서도 하지 않아도 되는 그런 부분이 있죠.


그런 바로 버전 체크 방법입니다. 테스트 개발시에는 버전체크를 하지 않아도 되고 혹 앱 스토어에 등록하더라도 버전체크 없이


개발자가 다음버전을 앱스토어에 등록하고 앱을 사용하는 사용자는 앱스토어에서 업데이트 하는 방식으로 사용해도 되기


때문에 특별히 신경쓰시지 않아도 되지만 분명 몇몇 분들은 이부분이 필요할수도 있어서 이렇게 기록을 남깁니다.


소스코드는 정말 심플합니다.


- (NSString *)appNameAndVersionNumberDisplayString {
    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString *appDisplayName = [infoDictionary objectForKey:@"CFBundleDisplayName"];
    NSString *majorVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
    NSString *minorVersion = [infoDictionary objectForKey:@"CFBundleVersion"];

    return [NSString stringWithFormat:@"%@, Version %@ (%@)", 
                appDisplayName, majorVersion, minorVersion];
}

< 소스코드 1-1 >


위 소스는 

http://stackoverflow.com/questions/458632/how-can-my-iphone-app-detect-its-own-version-number

에서 퍼온 소스 입니다.


일단 보시면 

NSString *appDisplayName = [infoDictionary objectForKey:@"CFBundleDisplayName"]

이부분은 역시 변수명처럼 알기 쉬울 것입니다. 여러분이 생각하시는 그  앱 이름 값을 불러와서 appDisplayName 변수에 저장

해두는겁니다.


NSString *majorVersion = [infoDictionary objectForKey:@"CFBundleShortVersionString"];
NSString *minorVersion = [infoDictionary objectForKey:@"CFBundleVersion"];

위의 두가지 명령어가 있죠. 둘다 버전을 불러오는 건데 이부분은 제가 확인해보니 첫번째 명령은 plist 파일에 있는 버전 정보를

가져 오는 방식이였습니다. 물론 밑에건 확인해보지 못했어요! 자 이부분 누군가 확인해서 댓글 달아 주시면 고맙겠네요.


마지막으로 사용법입니다. ( 대부분의 코딩좀 하실줄 아시는 분이면 사용법정돈 안봐도 사용하실꺼라 생각하시지만..)


사용방법은 역시 심플하게


NSString * temp_ver = [self appNameAndVersionNumberDisplayString];

< 소스코드 1-2 >


위 소스코드처럼 사용하시면 됩니다.


물론 함수형태를 안쓰고 뜯어서 필요할때만 써도 되지만 혹시 몰라 이렇게 뭉쳐놨을거란 생각이 드네요.


이상 iOS 앱 버전 확인 하는 방법이였습니다.


참고로 출처는 

http://stackoverflow.com/questions/458632/how-can-my-iphone-app-detect-its-own-version-number

입니다.