iOS 앱에서 프로그래밍 방식으로 대상 버전 / 빌드 수를 표시하는 방법은 무엇입니까?
target version
아래 이미지와 같이 프로그래밍 방식으로의 값을 얻는 방법은 무엇입니까?
내 Xcode 프로젝트 대상의 속성 창에서 볼 수 있습니다. 사람들이 현재 사용중인 버전을 알기 위해 앱의 스플래시 화면에 이것을 표시하고 싶습니다.
있다 2 개 숫자!
마케팅 릴리스 번호는 고객을위한 버전 번호 입니다. 1.0 부터 시작 하여 2.0 , 3.0의 주요 업데이트 , 1.1 , 1.2의 작은 업데이트 및 1.0.1 , 1.0.2의 버그 수정에 사용됩니다 . 이 숫자는 릴리스 및 새로운 기능에 관한 것입니다. 9에서 멈출 필요 는 없으며 1.11.23 은 합리적인 버전 번호입니다.
빌드 번호는 대부분입니다 빌드의 내부 번호 가 그때까지되었습니다. 그러나 일부는 리포지토리의 분기 번호 또는 커밋 번호와 같은 다른 숫자를 사용합니다. 이 숫자 는 약간의 증분 변경 만있는 다른 빌드를 구별하기 위해 고유 해야합니다 .
버전 번호 를 얻으려면
목표 -C :
NSString * appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
스위프트 <3.0 :
let appVersionString: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
스위프트 3.0 이상 (5.0으로 테스트) :
let appVersionString: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
빌드 번호 를 얻으려면 :
목표 -C :
NSString * appBuildString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
스위프트 <3.0 :
let buildNumber: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String
스위프트 3.0 이상 (5.0까지 테스트) :
let buildNumber: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
둘 다 원하는 경우 :
먼저 위의 줄을 사용하고 다음 줄을 사용하십시오.
목표 -C :
NSString * versionBuildString = [NSString stringWithFormat:@"Version: %@ (%@)", appVersionString, appBuildString];
스위프트 (5.0까지 테스트) :
let versionAndBuildNumber: String = "\(versionNumber) (\(buildNumber))"
노트:
주요 번들의 값은 명령 줄 응용 프로그램의 예를 들어이 더있다, 항상 존재하지 않습니다 CFBundleShortVersionString
또는 CFBundleVersion
메소드가 리턴되도록 nil
하고 코드에가 잘못된 풀이 죽은하게 있기 때문에 충돌합니다. 그러나 일반적인 Cocoa iOS 및 Mac 앱에서는 이러한 값이 정의되어 삭제되지 않습니다.
이것은 Xcode 버전 7.3 (7D175) 로 테스트되었습니다 . 빌드 번호는 종종 괄호 안에 표시됩니다. 빌드 번호는 16 진수 또는 10 진수입니다.
Xcode 에서는 프로젝트 설정 의 빌드 단계에 다음을 배치하여 빌드 번호 를 10 진수 로 자동 증가시킬 수 있습니다.Run script
#!/bin/bash
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
들어 진수의 빌드 번호이 스크립트를 사용
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
buildNumber=$((0x$buildNumber))
buildNumber=$(($buildNumber + 1))
buildNumber=$(printf "%X" $buildNumber)
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE"
다음을 Xcode
수행하십시오.
1 단계
2 단계
3 단계
프로젝트 또는 Xcode에서 아무것도 변경할 필요가 없습니다. Swift 버전은 다음과 같습니다.
let versionNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
let buildNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String
이 리포지토리에 포함되어 있으므로 확인하십시오.
https://github.com/goktugyil/EZSwiftExtensions
다음은 Swift 3 과 동일한 코드입니다 .
let versionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
프로그래밍 방식으로 버전 및 빌드 번호 표시-Swift 4.0
let versionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") ?? "1.0"
let buildNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") ?? "1.0"
let versionAndBuildNumber = "Ver #\(versionNumber) ( Build #\(buildNumber) )"
'development' 카테고리의 다른 글
Android : 갤러리에서로드 된 비트 맵이 ImageView에서 회전 됨 (0) | 2020.07.02 |
---|---|
Google Maps V3-특정 범위의 확대 / 축소 수준을 계산하는 방법 (0) | 2020.07.02 |
프로그래밍 방식으로 Android RelativeLayout에서 "centerInParent"설정 (0) | 2020.07.02 |
Ruby 배열의 마지막 요소를 제외한 모든 요소 (0) | 2020.07.02 |
nltk.data.load로 english.pickle을 (를) 불러 오지 못했습니다. (0) | 2020.07.02 |