2011-10-31 8 views
35

xcode의 "요약"탭에 코드를 입력 한 후 코드에서 자신의 응용 프로그램 버전을 얻는 방법이 있는지 궁금합니다. 한 가지 방법은 키에 대해 Info.plist을 검색하는 것으로 보이지만 다른 방법이 더 쉽고 편리합니다.xcode에서 자신의 앱 버전을 얻는 방법은 무엇입니까?

+0

[아이폰 앱이 어떻게 자신의 버전 번호를 탐지 할 수 있습니까?] (http://stackoverflow.com/questions/458632/how-can-my-iphone-app-detect-its-own-version-number) 가능한 중복 –

답변

113

주 번들에서 찾을 수 있습니다.

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; 
+0

그래, 방금 그 블로그를 발견했습니다 (http://pigtailsoft.com/blog/?p=35). 어쨌든 고마워! 6 분 안에 답을 수락합니다 :) –

+11

고맙습니다. 그러나'@ "CFBundleVersion"'은 버전이 아니라 빌드를 반환합니다. 이 객체를 가져와야합니다 :'@ "CFBundleShortVersionString"' – IgniteCoders

12
NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; 
27

내가 일반적으로 잘 수가 구축, 추적 및 마케팅 목적으로 버전 번호 (CFBundleShortVersionString)을 유지하기 위해 빌드 번호 (CFBundleVersion)를 사용 : 나는 같은 것을 생각합니다. 실행 스크립트를 사용하여 빌드 번호를 자동 증가시키고 새 릴리스가 나올 때마다 수동으로 버전 번호를 업데이트합니다. 당신이 빌드 번호는 반대로 코드에 실제 버전 번호를 포함 할 경우, 이것을 사용 그래서 :

[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"] 

또는 여기

[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; 

는 관심있는 사람들을위한 빌드 번호를 증가시키는 실행 스크립트이다 : 스위프트를 들어

#!/bin/bash 

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}" 
2

:

Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") 
관련 문제