Apple specifies that any application that may contain high levels of offensive language, violence, sexual content, or references to drugs or alcohol receive a rating of 17+. But, according to Apple, apps that feature an embedded web browser or provide access to 3rd party content also automatically require the 17+ rating, regardless of the application's content or intended audience.Marco Arment provides a little more detail:
Assuming Apple applies their standards on what constitutes “unfiltered internet content” somewhat uniformly, this will affect, among others, any subsequent versions of: Instapaper Every Twitter and Tumblr client that can show others’ content Every RSS reader Every Flickr client Every instant-messaging client (remember, text profanity counts) Every social-networking client Most ebook readersHowever, it's worse than that. If you set a rating for an application before you've finished it and uploaded to iTunes Connect, there is no way to change the rating afterwards. So say, for example, you edit the application to remove offensive content or, as mentioned above, remove an inbuilt browser, you cannot change the rating for your application back to sane levels, thus preventing you from generating promo codes for it! Until recently it was even nastier: If you had even a single 17+ rated application entry on iTunes Connect, whether it had been uploaded/finished or not, you were forbidden from making any promo codes for any of your other apps, even if they were rated 4+. I fell into that trap by having my (unreleased) Doom port listed on iTunes Connect as 17+; for months I was unable to generate promo codes for my other apps until I contacted Apple with a 'WTF?'. Fortunately, you were able to modify the rating at the time, unlike now. I really hope Apple sort out this mess soon, because when the App Store system works it works really well.
Posted this on Twitter a week back, but maybe it's of some interest to blog readers; here's how to do simple voice synthesis on the iPhone 3GS (3GS-only, I'm afraid). It's a private API, but hopefully if we file enough Radars they'll make it a public one.
To enable the following code to work you'll need to link the VoiceServices.framework (from the PrivateFrameworks folder of the SDK) in your app.
NSObject *v = [[NSClassFromString(@"VSSpeechSynthesizer") alloc] init]; [v startSpeakingString:@"All your base are belong to us"];
Apologies for my lazy 'NSObject' define above, but you get the idea :-)
With that, you have simple speech synthesis for your application (obviously you cannot include this when you submit to the App Store as it links to a private framework, but you can use it in your internal applications). It requires the 3GS because the Speech stuff just isn't in the firmware for the older devices.
Obligatory video below: