Question

Xcode 5 seems to have changed the way it stores the build application package (xxx.app) such that ditto no longer works. In the ../BuildProductsPath/Release/ directory, the app is actually a symlink to .../InstallationBuildProductsLocation/Applications/...

MyApp.app -> ~/Library/Developer/Xcode/DerivedData/MyApp-emwilkqhlayanxahjpexlpbbkato/Build/Intermediates/ArchiveIntermediates/MyApp/InstallationBuildProductsLocation/Applications/MyApp

This breaks the ditto command I was using to create a zip file of the application to put on my Sparkle update server.

Anyone have an updated script for building the Sparkle XML and ZIP files? Or know what environment variable I need to use to locate my actual binary after the Archive phase?

Here's the relevant lines from the post-archive script:

ARCHIVE_FILENAME="$HOME/Desktop/$PROJECT_NAME-$VERSION_STRING.zip"

cd "$BUILT_PRODUCTS_DIR"

ditto -ck --keepParent "$PROJECT_NAME.app" "$ARCHIVE_FILENAME"

That's from the sample script on the Sparkle website.

Was it helpful?

Solution

Turns out that in Xcode5 you need to pull the app package from the archive directory, not the Built Products directory. This works:

ARCHIVE_FILENAME="$HOME/Desktop/$PROJECT_NAME-$VERSION_STRING.zip"
ditto -ck --keepParent "${ARCHIVE_PRODUCTS_PATH}/Applications/${PROJECT_NAME}.app" "$ARCHIVE_FILENAME"
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top