I usually distribute stripped binaries, to make it harder to look into how I'm doing things. Yet, when something crashes on a customer machine, I still want to see a stack trace. For exactly this use case, XCode has the dSYM debug file format. dSYMs work both with debug and release builds.
The attached patch adds a checkbox to the Introjucer XCode exporter that you can tick to enable dSYM generation.
and we have a script to collect all dSYM and we easily symbolicate crashes.
(our release binaries are stripped).
that’s pretty much our script essence.
# copy symbols
cd "$PLUGIN_FULL_PATH/Builds/$PLATFORM_PATH/$CONFIGURATION/"
# simple way to avoid the entire folder structure...
if [ "$BUILD_TYPE" != "" ]; then
SYM_ARCHIVE="$SYM_PATH/$PRODUCT_NAME"_"$PLATFORM"_"$BUILD_TYPE"_"$GIT_REV"_sy$
else
SYM_ARCHIVE="$SYM_PATH/$PRODUCT_NAME"_"$PLATFORM"_"$GIT_REV"_sym.tar.gz
fi
tar -czvpf $SYM_ARCHIVE ./*.dSYM || exit 1