반응형
Info.plist에서 버전 읽기
Info.plist의 번들 버전 정보를 내 코드 (가급적이면 문자열)로 읽고 싶습니다. 어떻게 할 수 있습니까?
Info.plist를 사전으로 읽을 수 있습니다.
[[NSBundle mainBundle] infoDictionary]
그런 CFBundleVersion
식으로 키 에서 버전을 쉽게 얻을 수 있습니다 .
마지막으로 다음을 사용하여 버전을 얻을 수 있습니다.
NSDictionary* infoDict = [[NSBundle mainBundle] infoDictionary];
NSString* version = [infoDict objectForKey:@"CFBundleVersion"];
Swift 사용자의 경우 :
if let version = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") {
print("version is : \(version)")
}
Swift3 사용자 :
if let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") {
print("version is : \(version)")
}
의뢰와 답이 어느 정도 흘렀다는 것을 알고 있습니다.
iOS8부터 허용되는 답변이 작동하지 않을 수 있습니다.
이것이 이제 새로운 방법입니다.
NSString *version = (__bridge id)CFBundleGetValueForInfoDictionaryKey(CFBundleGetMainBundle(), kCFBundleVersionKey);
이제 iOS 8에서는 두 필드가 모두 필요합니다. 이전에는 CFBundleShortVersionString
. 하지만 이제는 앱 스토어에서 앱을 제출하는 데 필요한 plist 필드입니다. 그리고 kCFBundleVersionKey
모든 새 빌드를 업로드하기 위해 비교되며, 이는 증분 순서 여야합니다. 특히 TestFlight 빌드 용입니다. 나는 이렇게한다.
NSString * version = nil;
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
if (!version) {
version = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
}
스위프트 3 :
let appBuildNumber = Bundle.main.infoDictionary!["CFBundleVersion"] as! String
let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String
참고 URL : https://stackoverflow.com/questions/4059101/read-version-from-info-plist
반응형
'programing' 카테고리의 다른 글
SQL Server 테이블 : @, # 및 ##의 차이점은 무엇입니까? (0) | 2020.09.14 |
---|---|
`if key in dict` vs.`try / except`-어느 것이 더 읽기 쉬운 관용구입니까? (0) | 2020.09.14 |
: not (: empty) CSS 선택기가 작동하지 않습니까? (0) | 2020.09.13 |
"Mysql 행 크기가 너무 큼"에 대한 제한 변경 (0) | 2020.09.13 |
한 점이 선분의 다른 두 점 사이에 있는지 어떻게 확인할 수 있습니까? (0) | 2020.09.13 |