Comments 16
UFO just landed and posted this here
Каждый год на эту тему:
habrahabr.ru/post/132195/
habrahabr.ru/post/132195/
0
UFO just landed and posted this here
+1. Я тоже пользуюсь git describe. Хорошо читаемые версии получаются. И можно между делом наблюдать сколько коммитов с последнего релиза была. Кроме этого сохраняю текущую версию в имени основного потока, чтобы в крэш-логе сразу было видно в какой версии это случилось.
// выполняем 1 раз в application:didFinishLaunchingWithOptions:
NSString *ver = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
[[NSThread mainThread] setName:ver];
const char *name = [ver UTF8String];
if (name)
pthread_setname_np(name);
0
А какую часть git describe используете в качестве CFBundleVersion? Если полностью, то это не тот формат, который ожидает Apple. А если частично, то как потом находите нужный коммит?
Про NSThread очень интересно, спасибо!
Про NSThread очень интересно, спасибо!
0
Вот такой скрипт выполняется при каждой сборке:
и далее в plist-e:
git=/usr/local/bin/git
touch *.plist
version=`$git describe`
version=`echo $version | sed 's/[a-zA-Z]*//'`
versionNum=`echo $version | sed 's/\-[0-9]*\-[a-zA-Z0-9]*//'`
echo "#define GIT_VERSION $version" > InfoPlist.h
echo "#define APP_VERSION $versionNum" >> InfoPlist.h
и далее в plist-e:
<key>CFBundleVersion</key>
<string>GIT_VERSION</string>
<key>CFBundleShortVersionString</key>
<string>APP_VERSION</string>
0
Вижу, что используете полностью строку вместе с хэшэм. Я предпочитаю придерживаться документации:
CFBundleVersion (String — iOS, OS X). The string should only contain numeric (0-9) and period (.) characters
0
Сложно это. Я делаю вот так www.prudnikov.com/2011/10/blog-post.html. Скрипт в 4 строчки в Build Phases который использует PlistBuddy и обновляет номер билда прямо в Info.plist.
0
Попробуйте этот или любой другой подход в проекте, который использует мультиплеер через Game Center.
Если сначала собрать и установить на одном устройстве, потом на другом, номер билда будет разный на каждом устрйсте и протестировать мультиплеер через Game Center не получится, потому что версия приложения должна совпадать, вплоть до номера сборки. Так получается если запускать через Cmd+R каждый раз, пол умолчанию все скрипты из Build Phase запустятся.
Если сначала собрать и установить на одном устройстве, потом на другом, номер билда будет разный на каждом устрйсте и протестировать мультиплеер через Game Center не получится, потому что версия приложения должна совпадать, вплоть до номера сборки. Так получается если запускать через Cmd+R каждый раз, пол умолчанию все скрипты из Build Phase запустятся.
0
Почему версия будет разной? Версия, это ревизия из репозитория проекта, а она по Cmd+R не увеличивается. Скрипты да, запускаются, но версия от этого каждый раз не меняется.
0
Это мы, похоже, о каких-то разных «версиях» говорим.
Скрипты обычно увеличивают или изменяют CFBundleVersion, по-крайней мере у меня такой был. Этот скрипт был в Build Phases и запускался по Cmd+R каждый раз, в результате на двух девайсах получались приложения несовместимые через Game Center из-за CFBundleVersion.
Скрипты обычно увеличивают или изменяют CFBundleVersion, по-крайней мере у меня такой был. Этот скрипт был в Build Phases и запускался по Cmd+R каждый раз, в результате на двух девайсах получались приложения несовместимые через Game Center из-за CFBundleVersion.
0
Под версией я подразумеваю CFBundleVersion.
На гитхабе специально лежит тестовый проект с одним контроллером, который показывает текущую версию. Не поленитесь, попробуйте позапускать.
Если у вас был скрипт, который каждый раз увеличивает CFBundleVersion, то толку от такого скрипта ровным счетом никакого, потому что получить исходный код по номеру такой версии нереально.
На гитхабе специально лежит тестовый проект с одним контроллером, который показывает текущую версию. Не поленитесь, попробуйте позапускать.
Если у вас был скрипт, который каждый раз увеличивает CFBundleVersion, то толку от такого скрипта ровным счетом никакого, потому что получить исходный код по номеру такой версии нереально.
+1
Sign up to leave a comment.
Автоматическое обновление номера сборки проекта в Xcode