PhaseScriptExecution 失败,退出代码非零 + Fabric

PhaseScriptExecution failed with a nonzero exit code + Fabric

当我尝试构建我的应用程序时,它因上述错误而失败。 我该怎么办? 感谢您的帮助:)

脚本是

"${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"

我在构建阶段从 运行 个脚本中删除了脚本,然后构建了我的应用程序,并重新添加了我的脚本。

清理项目(即从 Xcode/DerivedData 中删除构建文件夹)导致了这个错误,我想。

我今天遇到了同样的问题,通过使用 运行 脚本将结构 DSYM 上传移动到新的 firebase 分发过程。

这对我来说很有趣,一次成功,一次失败。背后的原因是新的构建系统 运行s paralel,所以当你的脚本开始 运行ning 时,真的不能保证你的文件已经创建了你想要使用的东西。

为了解决这个问题,我们应该在脚本下面提供"Input Files"来告诉构建过程,等待运行这个脚本直到它不存在。

在这种情况下,我们要等待 dsym 文件,所以

${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}

应添加到输入文件区域

所以我的完整脚本如下所示

if [ ! -d ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} ]; then
    echo "No such DSYM file"
    exit 1
fi

devDBValue="${GCC_PREPROCESSOR_DEFINITIONS//*DEV_DATABASE=/}" 
devDBValue="${devDBValue// */}"

#Here I'm checking the type of database
if [ "$devDBValue" = "1" ];then
    echo "DB TYPE: DEV";
    "${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/MyprojectName/GoogleService-Info-DEV.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
else
    echo "DB TYPE: PROD";
    "${PODS_ROOT}/Fabric/upload-symbols" -gsp "${PROJECT_DIR}/MyprojectName/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
fi