Архив Xcode 11 дает сбой PhaseScriptExecution - PullRequest
1 голос
/ 30 сентября 2019

После того, как я перенес свой проект из swift 3.2 в swift 4 в Xcode 10, я пытаюсь выполнить архивирование в Xcode 11 и выдает мне эту ошибку:

PhaseScriptExecution Run \ Script / Users / desarrollo / Library /Разработчик / Xcode / DerivedData / MyApp КСН-ewcyzseaubkujucenluznpmduhoo / Строительные / Intermediates.noindex / ArchiveIntermediates / MyApp КСН-DEV / IntermediateBuildFilesPath / MyApp-iOS.build / Release-iphoneos / MyApp-iOS-DEV.build / Script-E95AEDE51E54767F00B60429. sh (в цели «MyApp-iOS-DEV» из проекта «MyApp-iOS»)

. ,.

/ Пользователи / desarrollo / Библиотека / Разработчик / Xcode / DerivedData / MyApp-iOS-ewcyzseaubkujucenluznpmduhoo / Build / Intermediates.noindex / ArchiveIntermediates / MyApp-iOS-DEV / IntermediateBuildFilesPath / MyApp- Release.OSiphoneos / MyApp-iOS-DEV.build / Script-E95AEDE51E54767F00B60429.sh: строка 5: $ (CURRENT_PROJECT_VERSION) + 1: синтаксическая ошибка: ожидается операнд (маркер ошибки "$ (CURRENT_PROJECT_VERSION) + 1" * 100 * 100) *

В стеке ошибок я нахожу export CURRENT_PROJECT_VERSION = 114

У меня нет сценария с "$ (CURRENT_PROJECT_VERSION) + 1", поэтому я надеваюне знаю что делать

Ответы [ 2 ]

3 голосов
/ 30 сентября 2019

ОБНОВЛЕНИЕ:

В последней версии XCode (версия 11.1) вы можете довольно легко выполнить автоматическое увеличение номера сборки.

Вот шаги:

  1. Перейти к цели Build Settings
  2. Поиск Versioning System
  3. Установить значение Apple Generic
  4. Перейти к цели Build Phases
  5. Добавить новый сценарий выполнения
  6. Добавить следующую строку agvtool next-version -all

Сделайте это для всех ваших целей, и их номера сборки будут синхронизированы иобновляется каждый раз при запуске любой из целей.

Получите ответ отсюда: https://stackoverflow.com/a/58237340/1432355

ОРИГИНАЛ:

Вы не сделалиЯ думаю, ничего плохого не сделаю.

Если вы перейдете на info.plist, вы увидите, что номер сборки был заменен на $(CURRENT_PROJECT_VERSION) (переменную можно найти на вкладке «Настройки сборки»).

Я предполагаю, что вы используете скрипт, который автоматически увеличивает номер сборки и вызывает проблему (у меня то же самое в моем проектеау).

Если вы удалите этот скрипт, ваше приложение должно скомпилироваться без этой ошибки.

Я пока не нашел решения о том, как заставить скрипт работать с этой новой переменной $(CURRENT_PROJECT_VERSION),(Я обновлю этот ответ, когда найду решение)

2 голосов
/ 08 октября 2019

Просто измените CFBundleVersion с $(CURRENT_PROJECT_VERSION) на число, в моем случае это 1000 в Info.plist

<key>CFBundleVersion</key>
<string>1004</string>

Тогда оболочка будет в порядке:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
...