I have spent hours trying to publish my new Mac OS app to the Mac AppStore. I keep getting an email after publication about a malformed framework:
Malformed Framework - The framework bundle (XXXX.app/Contents/Frameworks/Growl.framework) must contain a symbolic link 'Growl' -> 'Versions/Current/Growl'. Refer to the Anatomy of Framework Bundles for more information.
Malformed Framework - The framework bundle (XXXX.app/Contents/Frameworks/Growl.framework) must contain a symbolic link 'Resources' -> 'Versions/Current/Resources'. Refer to the Anatomy of Framework Bundles for more information.
Malformed Framework - The framework bundle (XXXX.app/Contents/Frameworks/Growl.framework) contains 'Headers', which should be a symbolic link -> 'Versions/Current/Headers'. Refer to the Anatomy of Framework Bundles for more information.
Malformed Framework - The framework bundle (XXXX.app/Contents/Frameworks/Growl.framework) 'Versions' directory must contain a symbolic link 'Current' resolving to a specific version directory. Refer to the Anatomy of Framework Bundles for more information.
These errors are pretty self explanatory but I can not find a way as to why this happens
The issue was the way I was copying the Growl.Framework
in the Run Script
phase of my build process in XCode 5. I was using
cp -pr /Library/Frameworks/Growl.framework $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/Contents/Frameworks
but on Mac OS the cp
command misses a lot of options to preserve symbolic links and I had to use:
cp -R /Library/Frameworks/Growl.framework $BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/Contents/Frameworks
Then my app moved to the "Waiting for review" state