Я настроил свой проект на использование сценария запуска, который автоматически устанавливает номер сборки на основе количества коммитов, которые у меня есть в моей основной ветке:
Весь сценарий, если это поможет любому:
#!/bin/bash
# update_build_number.sh
# Usage: `update_build_number.sh [branch]`
# Run this script after the 'Copy Bundle Resources' build phase
# Ref: http://tgoode.com/2014/06/05/sensible-way-increment-bundle-version-cfbundleversion-xcode/
branch=${1:-'master'}
buildNumber=$(expr $(git rev-list $branch --count) - $(git rev-list HEAD..$branch --count))
echo "Updating build number to $buildNumber using branch '$branch'."
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
if [ -f "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM/Contents/Info.plist" ]; then
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM/Contents/Info.plist"
fi
Как упомянуто в заголовке, я могу собрать это на устройстве, и номер сборки правильно установлен.Или я могу архивировать и загружать в AppStore через XCode, и версия снова устанавливается правильно.Основываясь на этих наблюдениях, я предполагаю, что это настроено правильно.
Однако, когда я использую fastlane для управления своим развертыванием, он не обновляет номер сборки, поэтому я получаю эту ошибку:
ОШИБКА ITMS-90189: «Избыточная двоичная загрузка. Вы уже загрузили сборку с номером сборки« # »для номера версии« # ». Убедитесь, что вы увеличиваете строку сборки перед загрузкой приложения в App Store Connect.Подробнее в Справке Xcode (http://help.apple.com/xcode/mac/current/#/devba7f53ad4)."
tl; dr
"Вы уже дали нам эту версию, пришлите нам новую"
Для fastlane это сжатая версия того, что я использую для развертывания бета-версии:
default_platform(:ios)
platform :ios do
lane :beta do
build_app(workspace: "MyApp.xcworkspace",
scheme: "MyApp")
upload_to_testflight
end
end
Наконец, если я жестко закодировал обновленный номер сборки в Xcode, тогда fastlane правильно доставит файл, поэтому я предполагаю, что мои настройки действительны, без проблемы с версией.
Я также экспериментировал с increment_build_number
, но я не смог найти параметр, который заставил его работать (плюс, Xcode должен управлять этим для менятеперь так быстроне должно беспокоить).