Tag Archives: App Store

A simple validator for Mac App Store submissions

I figured out I had to have an automated check prior to Mac App Store submission because I managed to miss some stuff a few times.

So here's a beginning of a simple unofficial test suite for Mac App Store submissions: CheckRelease on BitBucket

It currently checks only if you have some external dependencies. I'll try to write a validation for checking if you have added all the frameworks you depend on into the app, and I hope to extend it with some additional tests.

It's under BSD license, and contributions are very welcome!

Also, hopefully, Apple will extend their own validator built into Application Loader and Xcode. Currently we have to wait a few days for rejections from the App Store team that are as trivial as "forgot to put in a framework" and "forgot to get rid of an external dependency" (or, at least, a reference to an external dependency that you actually don't depend on, and that you never actually use).

Mac App Store rejection due to incorrect framework paths

Apple's very strict: you can reference frameworks in /System/Library/Frameworks and in your own app. That's all fine, but there's another unexpected obstacle. App can be self-contained (the library executable paths patched using install_name_tool) but the install path still references /Library/Frameworks. See "otool -L"; the first reference is a self-reference, and it looks like you can't easily update it after the library is built. (Or I didn't look hard enough). And yup, leaving that an absolute path referencing into /Library/Frameworks, that's enough for rejection.

Untested theory is that updating "Dynamic Library Install Name" (LC_ID_DYLIB) is enough to fix this. I've set it to:

@executable_path/../Frameworks/$(EXECUTABLE_PATH)

in place of

$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)