iosxcodexcode10dsymrun-script

Run Script Phase after dSYM is generated with Xcode 10 (on build)


In the New Features section, it states:

  • In the new build system, shell scripts can't rely on the state of build artifacts not listed in other build phases (for example, the Info.plist file or .dSYM files.) Add files the script build phase depends on as explicit input dependencies to the shell script build phase. (40852184)

In previous Xcode, the script was executed successfully but now it can execute when the dSYM file size is 0.

How can I have a Run Script Phase that will start only after the dSYM file is generated?
How can I create an "explicit input dependencies to the shell script build phase" as they requested?


Solution

  • A similar question can be found here:

    Build phase script is running before needed files are created in Xcode 10

    You need to add the dSYM as an input file dependency of your run script phase: D

    dSYM default location is ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}

    You can test this using a short script and observing its output:

    #!/bin/sh
    
    if [ ! -d ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} ]; then
        echo "Couldn't find dsym file"
        exit 1
    fi
    
    stat -x ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}