我已经创建了一个定制的通用框架,我需要将这个脚本添加到它的构建阶段,以便通用框架能够删除未使用的体系结构。如果我计划在应用程序中使用应用程序商店,这是必要的。
但是我得到了编译错误(命令PhaseScriptExecution失败了,一个非零的退出代码):


脚本:
# 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"--这是这里的一个教程: 用Xcode 10.2和iOS 12编写自定义通用框架
问题可能只是一个写得不恰当的字符串,或者是一个不应该出现的空格,但我不知道。
发现:我知道它与for循环或其中的什么东西有关,因为当我删除for循环和它的内容/嵌套代码时,错误就消失了。
复制:要重现错误,您可以简单地创建一个虚拟Xcode项目,然后选择名为→yourProject.xcodeproj的“项目”选项卡,选择目标→项目名称→Select→Press“+”→新运行脚本阶段→,将脚本命名为“删除未使用的体系结构脚本”→,最后只复制和通过代码。
发布于 2020-10-27 14:57:35
这里可能要归咎于for循环。他们可以捕捉到任何可能发生的退出密码。我在这件事上也遇到过类似的问题。
<<<操作切换到switch循环::https://stackoverflow.com/a/16854326/4970749https://stackoverflow.com/questions/59942651
复制相似问题