Есть 2 номеров!
Номер маркетинговой версии для клиентов, который называется номер версии .Начинается с 1.0 и повышается для основных обновлений до 2.0 , 3.0 , для незначительных обновлений до 1.1 , 1.2 и для исправления ошибок 1.0.1 , 1.0.2 .Этот номер ориентирован на релизы и новые функции.Не обязательно останавливаться на 9, 1.11.23 - это разумный номер версии.
номер сборки в основном внутреннее число сборок , которые были сделаны до тех пор.Но некоторые используют другие числа, такие как номер ветви репозитория или номер его коммита.Это число должно быть уникальным , чтобы различать различные сборки, которые имеют незначительные изменения.
Чтобы получить версию номер:
Objective-C:
NSString * appVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
Swift <3.0: </p>
let appVersionString: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String
Swift 3.0+ (протестировано с 5.0):
let appVersionString: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
Чтобы получить build число:
Objective-C:
NSString * appBuildString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
Swift <3.0: </p>
let buildNumber: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleVersion") as! String
Swift 3.0+ (проверено до 5.0):
let buildNumber: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
Если вы хотите, чтобы оба в одном:
Сначала используйте вышеуказанные строки, а затем следующие.
Objective-C:
NSString * versionBuildString = [NSString stringWithFormat:@"Version: %@ (%@)", appVersionString, appBuildString];
Swift (проверено до 5.0):
let versionAndBuildNumber: String = "\(versionNumber) (\(buildNumber))"
Примечания:
Значения в основном пакете присутствуют не всегда, например, в приложении командной строки естьнет CFBundleShortVersionString
или CFBundleVersion
, поэтому методы будут возвращать nil
, и он будет аварийно завершать работу, потому что в коде он делает неправильное снижение.Но в обычных приложениях Cocoa для iOS и Mac эти значения определены и не будут удалены.
Это протестировано с Xcode Version 7.3 (7D175) .Номер сборки часто пишется в скобках / скобках.Номер сборки в шестнадцатеричном или десятичном виде.
В Xcode вы можете автоматически увеличивать номер сборки как десятичное число , поместив следующее на этапе построения 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