Xcode: увеличить номер сборки
Мы используем скрипт, который создает метку времени и заменяет номер сборки приложения.
#!/bin/bash
echo "Update Build Number to Timestamp"
echo "--------------------------------"
# fail on error
set -e
agvtool new-version -all $(date +%Y%m%d%H%M%S)
Это изменяет номер сборки на что-то вроде этого: 201703241425
,
Мы ввели внутреннюю структуру для нашего проекта.
Команда выше также заменяет рамки Build
число и Current Library Version
, Тем не менее, сборка завершается с ошибкой:
▸ Linking In-HouseFrameworkLayer
❌ ld: malformed 64-bit a.b.c.d.e version number: 201703241425
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)
Когда я меняю формат для фреймворка Build
число, Current Library Version
до 1.0.0 и выполните сборку без использования приведенного выше сценария, сборки будут успешными.
Вопрос: Как я могу изменить Build
номер только для приложения, но не рамки Current Library Version
число?
3 ответа
Давайте сделаем это по-своему. Номер сборки будет увеличиваться после каждой успешной сборки.
Я проведу вас через 5 изображений, просто просмотрите их.
Выберите "Изменить схему..." из раскрывающегося списка, когда вы выберете имя своего проекта, расположенное справа от кнопки Stop_build_button. Проверить первый шаг
В меню leftSide разверните опцию "Build" и выберите "Post-actions" Проверить второй шаг.
Здесь вы можете добавить желаемые коды (сценарии), которые хотите выполнить после успешной сборки вашей программы. Это место, где мы должны добавить немного кода, чтобы наша автоматизация работала идеально. >> 1. нажмите кнопку "добавить (+)" в левом углу, чтобы добавить новый файл сценария. >> 2. Теперь в раскрывающемся списке выберите "Создать действие сценария выполнения". Отметьте третий шаг.
Он имеет 3 поля >> 1. оболочка уже назначена для вас >> 2. теперь для "Предоставить вам настройки сборки из" выберите имя вашего проекта. >> 3. Есть большое поле для добавления вашего скрипта, просто скопируйте и вставьте туда этот код: Отметьте четвертый шаг
PLIST="${PROJECT_DIR}/${INFOPLIST_FILE}" PLB=/usr/libexec/PlistBuddy LAST_NUMBER=$($PLB -c "Print CFBundleVersion" "$PLIST") NEW_VERSION=$(($LAST_NUMBER + 1)) $PLB -c "Установить:CFBundleVersion $NEW_VERSION" "$PLIST"
После завершения 4-го шага просто выберите "Закрыть", чтобы закрыть окно, и мы должны сделать последний шаг, перейдите к вашему файлу "plist.info" в меню файла проекта и убедитесь, что ключ "Версия пакета" в разделе "Ключ" больше всего Проверка числового значения Пятый шаг
Очевидно, что приложение использует CFBundleVersion
+ $(CURRENT_PROJECT_VERSION)
; библиотеки / рамки должны использовать (Current Library Version)
+ $(DYLIB_CURRENT_VERSION)
По умолчанию установлено $(CURRENT_PROJECT_VERSION)
так что это то, что вам нужно изменить на $(DYLIB_CURRENT_VERSION)
строка.
Важно: для приложений MacOS номера сборок должны монотонно увеличиваться даже в разных версиях. Другими словами, для приложений MacOS вы не можете снова использовать одни и те же номера сборки в разных выпусках. Приложения для iOS не имеют такого ограничения, и вы можете снова использовать одни и те же номера сборки в разных сериях релизов.
Значение для номера версии или номера сборки должно состоять только из '. И цифр и должно начинаться и заканчиваться цифрой. Каждое целочисленное значение, разделенное точкой, является компонентом версии. Максимальное количество символов в номере вашей версии или в номере вашей сборки не может превышать восемнадцать символов в общей сложности.
Номера версий и сборок iOS могут содержать три или более компонентов, но максимальный размер всего номера версии или номера сборки не должен превышать восемнадцать символов.
приложения macOS несколько более строгие, чем iOS
Программы. За macOS
В приложениях существует ограничение в три компонента, разделенных точками, и может быть не более трех компонентов.
↳ Номера версий и номера сборки
Version Автоматизация номеров версий и сборок с помощью agvtool
Если вы хотите сохранить $(MARKETING_VERSION) в Info.plist для CFBundleShortVersionString, но хотите увеличить версию после успешного архивирования или сборки, используйте следующий сценарий: скажем, добавьте еще 1 десятичное число к версии приложения или даже увеличьте младшую или крошечную/патч или большую часть десятичного числа, или даже вы можете увеличить как номер версии, так и номер сборки, но вы должны сделать это, изучая другие легкодоступные скрипты и соответственно изменить