Команда PhaseScriptExecution завершилась неудачно с ненулевым кодом завершения Xcode 11 (BuildPhase Script) - PullRequest
0 голосов
/ 28 января 2020

Я создал пользовательский универсальный фреймворк, и мне нужно добавить этот сценарий к этапам сборки, чтобы универсальный фреймворк удалял неиспользуемые архитектуры. Что необходимо, если я когда-либо планирую использовать для магазина приложений в приложении.

Но я получаю ошибку компиляции (команда PhaseScriptExecution завершилась с ненулевым кодом завершения): enter image description here

enter image description here

Сценарий:

# Type a script or drag a script file from your workspace to insert its path.
FRAMEWORK="TestFramework"
FRAMEWORK_EXECUTABLE_PATH="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/$FRAMEWORK.framework/$FRAMEWORK"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRAFRAMEWORK="TestFramework"
FRAMEWORK_EXECUTABLE_PATH="${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/$FRAMEWORK.framework/$FRAMEWORK"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"CTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

Это из учебника здесь: Написание Custom Universal Framework в Xcode 10.2 и iOS 12

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

Выводы: я знаю, что это как-то связано либо с for l oop, либо с чем-то внутри него, потому что когда я удаляю for для l oop и это содержание / гнездо-код, в котором ошибка исчезла.

Воспроизвести: для воспроизведения ошибки можно просто создать фиктивный проект Xcode, а затем выбрать вкладку «Проект» с именем → yourProject.xcodeproj, выбрать цель → Название проекта → Выбрать этапы сборки → Нажмите «+» → Новый этап запуска сценария → Назовите скрипт как «Удалить неиспользуемый скрипт архитектуры» → и, наконец, просто скопируйте и вставьте код.

...