The Mac App Store gave me an excuse to try to make money out of my Open Source gravity simulator, Gravit.
I signed up to the Mac Developer Program, packaged Gravit, and uploaded it. Soon after, I got an email mentioning:
2.5 Apps that use non-public APIs will be rejected
The following non-public APIs are included in your application:
CPSSetFrontProcess, CPSGetCurrentProcess and CPSEnableForegroundOperation from the ApplicationServices.framework
After a quick search on the net, and some investigation of the code, it turns out that SDLMain.m (which is the entry point for Cocoa SDL apps) included these functions. It was trivial to fix, just by commenting out a define:
#define SDL_USE_CPS 1
Resubmitting the app worked fine, and it *just* made it into the Mac App Store for opening day. It was even ranked 35th in top downloads in Australia!
There were a few bugs in Gravit, and some problems with using the function keys. I quickly fixed up a few things then tried to resubmit to the Mac App Store. It failed to upload. Something happened with either my computer, Gravit or their servers:
An error occurred on the Apple server while trying to authenticate the package: 411594302.itmsp
An exception has occurred: Error invoking operation:
java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl cannot be cast to org.apache.axis.attachments.Attachments: Exception trying to invoke operation: validateMetadata
Could not connect to Apple’s web service.
Unable to authenticate the package: 411594302.itmsp
So now Gravit in limbo and won’t be receiving updates until this problem is fixed.