Telenet Meter - a utility app to check the amount of bandwidth you have left in Belgium - is yet again rejected by Apple.
No big news, but the complete story is pretty interesting: we got rejected 2 weeks ago, because we used Three20 - a public library from Joe Hewitt - which seemed to be using some non-public APIs. Apple's rejection letter clearly stated only the non-public APIs used in Three20 (in detail
'UITouch._locationInWindow'
'UITouch._phase'
'UITouch._previousLocationInWindow'
'UITouch._tapCount'
'UITouch._timestamp'
'UITouch._touchFlags'
'UITouch._view'
'UITouch._window'
). We quickly fixed the issue (removed these API calls as we were not using them anyway) and resubmitted our app.
And yes, today we got another rejection letter from Apple - this time stating we used another non-public API (removeFileAtPath:handler:), this time introduced by the Google Toolbox library. Why-o-why couldn't they (=Apple) report the Google-Toolbox-non-public-API the previous time? This costs us yet another 2 weeks of approval time. Is it so hard for Apple to report all non-public APIs in 1 go? Can't they release the static analyzer they use, in order for us - developers - to check this prior to submission - gaining time for us and them? As more an more libraries become available, it gets harder and harder to make sure no 'illegal' API calls are used within those 3rd party libraries.
And want to know what's even better: we do have an app on the App Store - Skynet Meter, identical to the Telenet Meter app - only a different provider is queried - which is available on the App Store and got approved in just 2 weeks!
On Windows we had DLL Hell, on the iPhone we have Approval Hell.