Я пишу приложение для iPhone. Он уже опубликован, но я хотел бы добавить функцию, в которой отображается номер его версии.
Я бы предпочел не делать это вручную с каждой версией, которую я выпускаю ...
Есть ли способ в target-C узнать, какая версия моего приложения?
Ответы:
Как я здесь описываю , я использую скрипт для перезаписи файла заголовка с моим текущим номером ревизии Subversion. Этот номер редакции сохраняется в константе kRevisionNumber. Затем я могу получить доступ к версии и номеру ревизии, используя что-то похожее на следующее:
который создаст строку в формате «Версия 1.0 (51)».
источник
CFBundleShortVersionString
что вы обычно хотели бы для «версии» иCFBundleVersion
для номера сборки.[NSString stringWithFormat:@"Version: %@ (%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]]
Основываясь на ответе Брэда Ларсона, если у вас есть информация о основной и вспомогательной версиях, хранящаяся в информационном списке (как я это делал в конкретном проекте), это хорошо сработало для меня:
Теперь изменение минорной версии вручную может быть затруднительным, поэтому использование трюка с номером ревизии исходного репозитория является идеальным. Если вы не связали это (как я не сделал), приведенный выше фрагмент может быть полезным. Это также вытаскивает отображаемое имя приложения.
источник
Swift версия для обоих по отдельности:
Свифт 3
Swift 2
Это включено в этот репо, проверьте это:
https://github.com/goktugyil/EZSwiftExtensions
источник
Это то, что я сделал в своем приложении
Надеюсь, этот простой ответ поможет кому-то ...
источник
Вы можете указать
CFBundleShortVersionString
строку в вашем plist.info и прочитать ее программно, используя предоставленный API .источник
Есть две вещи - версия сборки и версия приложения.
Чтобы получить версию приложения:
Чтобы получить версию сборки:
источник
objectForInfoDictionaryKey:
вместо того,infoDictionary] objectForKey:
потому что первый возвращает локализованное значение (если оно есть). Вероятно, здесь ничего не изменится;)источник
Краткий способ получить строку версии в формате XYZ :
Или просто XY:
Оба из этих фрагментов возвращают строки, которые вы бы присвоили текстовому свойству объекта метки, например
источник
Вы можете попробовать использовать словарь как: -
источник
Прочитайте файл info.plist вашего приложения и получите значение для ключа CFBundleShortVersionString. Чтение info.plist даст вам объект NSDictionary
источник
Вы можете использовать infoDictionary, который получает информацию о версии из info.plist вашего приложения. Этот код работает для Swift 3. Просто вызовите этот метод и отобразите версию в любом предпочтительном элементе пользовательского интерфейса.
источник
Свифт 5:
Есть две вещи - версия приложения и версия сборки
Чтобы получить версию приложения:
Чтобы получить версию сборки:
Спасибо
@Brad Larson♦
большоеисточник
Если вам нужно сочетание обеих версии и сборки NUM , вот короткий путь с помощью Swift 3 :
Добавьте
as! String
в конец строкиappVersion
или или,buildNum
чтобы получить только эту часть в качествеString
объекта. Не нужно, хотя, если вы ищете в полной мереversionInfo
.Надеюсь, это поможет!
источник
Основано на ответе @rajat chauhan без принудительного приведения
String
.источник
Это хорошая вещь, чтобы справиться с системой контроля версий. Таким образом, когда вы получаете отчет об ошибке от пользователя, вы можете проверить эту ревизию кода и (надеюсь) воспроизвести ошибку, выполняющую точно такой же код, что и пользователь.
Идея состоит в том, что каждый раз, когда вы делаете сборку, вы запускаете скрипт, который получает текущий номер ревизии вашего кода и обновляет файл в вашем проекте (обычно с какой-либо формой замены токена). Затем вы можете написать подпрограмму обработки ошибок, которая всегда включает номер редакции в вывод ошибок, или вы можете отобразить его на странице «О программе».
источник
Вы можете попробовать этот метод:
источник