Как установить CURRENT_PROJECT_VERSION в xcode 8
Начиная с обновления до Xcode 8, когда я делаю сборку с fastlane, я получаю следующее сообщение об ошибке:
There does not seem to be a CURRENT_PROJECT_VERSION key set for this project
Если я захожу в Xcode>Build Settings и перехожу к Versioning, есть ключ Current Project Version, как показано ниже:
Текст справки гласит, что нужно вводить целое число или число с плавающей запятой, но когда я щелкаю по полю, нет возможности ввести число в поле "Отладка" или "Выпуск". Это отличается от снимка экрана, показанного в этом яблочном техническом вопросе и ответах, так что, похоже, в Xcode произошли изменения с момента выпуска вопросов и ответов.
2 ответа
В настоящее время, когда вы получаете эту ошибку fastlane, журналы терминала перенаправляют вас на
чтобы понять, что вам нужно сделать.
Резюме
Включить agvtool.
Настройки сборки> Текущая версия проекта> $(CURRENT_PROJECT_VERSION)
Настройки сборки> Система управления версиями> Apple Generic
Настройте свою версию и номера сборки.
Target> Info> Bundle version string, short (CFBundleShortVersionString)> "ваша версия инициализации"
Target> Info> Bundle version (CFBundleVersion)> "ваше значение инициализации"
Это мне очень помогает.
Не. Вместо этого измените значения в файле info.plist вашего приложения.
Это значит не использовать agvtool (как я узнал).
Зачем? За прошедшие годы Apple разработала несколько способов изменения версий и номеров сборок. Многие из них сейчас устарели и плохо практикуются. Изменение CURRENT_PROJECT_VERSION изменяет значения в файле project.pbxproj вашего проекта, и если вы работаете с распределенной командой, это вызовет конфликты слияния, если другая половина команды попытается обновить, и пока они спят, вы обновили это внутреннее значение. Если вы используете модули, вы получите еще несколько конфликтов слияния для каждого модуля, которые вы добавите в проект.
Итак, CURRENT_PROJECT_VERSION?
Не используйте это.
В файле info.plist находятся эти ключи.
CFBundleVersion
CFBundleShortVersionString
использование CFBundleVersion
для номера сборки вашего приложения. использование CFBundleShortVersionString
для номера версии вашего приложения.
Используйте Plistbuddy, чтобы сделать это.
<key>CFBundleShortVersionString</key>
<string>3.0.7</string>
<key>CFBundleVersion</key>
<string>934</string>
</dict>
</plist>
Попробуйте скрипт ниже.
#!/bin/sh
# To make executable, use: chmod u+x Build-Versioning-Scripts/Increment_Build_Number.sh
# to locate your target's info.plist use
# ${PRODUCT_SETTINGS_PATH}
echo "----"
echo "Info.plist for target: ${PRODUCT_SETTINGS_PATH}"
buildNum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "${PRODUCT_SETTINGS_PATH}")
echo "Current build #: $buildNum"
if [ -z "$buildNum" ]; then
echo "No build number found in $PRODUCT_SETTINGS_PATH"
exit 2
fi
buildNum=$(expr $buildNum + 1)
echo "Build # incremented to: $buildNum"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNum" "$PRODUCT_SETTINGS_PATH"
echo "----"
exit 0
При добавлении этого сценария в процесс сборки или архивирования на компьютере сборки это автоматически обновит номер сборки приложения. Если вы хотите увеличить номер версии своего приложения, измените CFBundleShortVersionString
(Bundle versionstring, short) в info.plist вручную.
Вы можете попробовать изменить формат проекта?
Я предлагаю вам изменить эту версию формата xcode.