Эти элементы в информации о сборке недоступны для вашего встроенного приложения. Они являются заполнителями, которые вы могли бы использовать в своем приложении. Что в вашем приложении есть все, что вы размещаете, скажем, в папке «Ресурсы» вашего приложения, например, в любых текстовых файлах или листах, или в хорошем изображении вашего инженера по разработке версий.
Теперь вы можете вытащить некоторые элементы в окне информации о сборке в info.plist, используя специальные идентификаторы, такие как $ {VERSION_INFO_PREFIX} или другой токен. Токены доступны, если вы нажмете на любой из предметов с левой стороны в окне, которое вы указали выше. Например, щелкните по слову «Текущая версия проекта» и скопируйте токен, который вы видите внизу, «CURRENT_PROJECT_VERSION». Затем перейдите в свой файл plist и добавьте запись. Дайте ему любое имя, которое вы хотите, или «Текущая версия проекта». Вставьте в $ {CURRENT_PROJECT_VERSION} с правой стороны. Теперь это значение доступно вам из вашего приложения, программно. Конечно, кто-то теперь должен ввести эту ценность в соответствующее место либо в окне «Информация о сборке», либо в другом месте. Просто проще просто управлять этим и такими полями в файле info.plist. Это зависит от вас, как вы хотели бы справиться с этими вещами.
Вот как я получаю информацию о версии из моего info.plist:
+ (NSString *) getAppVersionNumber;
{
NSString *myVersion,
*buildNum,
*versText;
myVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
buildNum = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];
if (myVersion) {
if (buildNum)
versText = [NSString stringWithFormat:@"Version: %@ (%@)", myVersion, buildNum];
else
versText = [NSString stringWithFormat:@"Version: %@", myVersion];
}
else if (buildNum)
versText = [NSString stringWithFormat:@"Version: %@", buildNum];
NSLog(versText);
return versText;
}
Я думаю, что тогда управление версиями включает в себя добавление репозиториев и настройку SCM для вашего проекта в XCode, и это, вероятно, не версия, которую вы хотите (хотя я могу ошибаться). – Eimantas
Если вы установите значение CFBundleVersion в вашем файле plist в значение $ {CURRENT_PROJECT_VERSION}, оно будет заменено на то, что находится в текущей версии проекта из настроек сборки. Затем вы можете использовать agvtool bump для увеличения номера сборки. – mjk
Кроме того, вместо строки hardcoded '@" CFBundleVersion "', которая используется в 'NSString', может быть использована' CFString' 'kCFBundleVersionKey', если это необходимо, в коде выше. – trss