2017-01-05 6 views
0

Точно так же, как ($ (PRODUCT_NAME), $ (EXECUTABLE_NAME), $ (PRODUCT_BUNDLE_IDENTIFIER)), можно получить исполняемое имя файла (в Info.plist) с номером версии (например $ ВЕРСИЯ или что-то вроде этого)?Как я могу получить «Имя архива» (в «Редактировать схему/Архив/Имя архива») динамически с помощью CFBundleShortVersionString в суффиксе?

На данный момент у меня есть $ (TARGET_NAME), я хотел бы добавить номер версии (CFBundleShortVersionString). Пример: Name_of_the_App_v1.45.ipa

Изменение «название продукта», как на рисунке не работает: enter image description here

Для информации, я использую этот скрипт для автоматического увеличения сборки и версии в " Build Phases/Run Script ".

#!/bin/bash 
rm -rf build 

Build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
Build=$(($Build + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $Build" "$INFOPLIST_FILE" 

Version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE") 
Version=$(echo "scale=2; $Version + 0.01" | bc) 
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $Version" "$INFOPLIST_FILE" 

Единственное, что изменить имя архива ипа находится в разделе «Изменить имя Scheme/Архив/Архив», который принимает по умолчанию имя схемы. Поэтому вам нужно изменить имя архива или напрямую изменить значение схемы, если вы хотите увидеть это значение в имени ipa. enter image description here

Как я могу изменить динамически, что имя архива, добавить CFBundleShortVersionString в суффикса непосредственно в разделе Run Script или где-нибудь еще ? Спасибо заранее.

ответ

1

Это возможно, добавив пользовательскую настройку сборки в свою цель. Щелкните Project -> Targetname -> Build-Settings -> Plus-Button -> Name: APP_VERSION, Value: 1.0.0. После этого новая конфигурация устанавливается как препроцессор-переменная $ (APP_VERSION) в вашем Info.plist.

Для ясности вы также должны установить CFBundleShortVersionString в эту переменную, поэтому две записи Info.plist всегда будут содержать одну и ту же строку версии.

+0

Решение очень интересно, но моя проблема в том, что я использую скрипт, который автоматически увеличивает сборку и версию. Я поставил код сценария в вопросе orignal более ясным. – Claudio

+0

Я не думаю, что могу использовать оба? – Claudio

+0

Интересно. Попробуйте обновить APP_VERSION в этом скрипте и проверить, будет ли новое содержимое применяться в Info.plist. APP_VERSION = «$ Version» –