From the iTunes Connect FAQ: [Developer login required]
“Your app is searchable by your app name, your keywords and your company name.”
This means you don’t have to waste valuable keywords by including your app or company name in the 100 byte keyword limit.
To gain a few more characters you can also remove the spaces in-between keywords and separate them with commas: just,like,this.
However; don’t be a dick. It’s tempting to fill your app name up with many keywords, this makes your app look cheap — don’t do it!
The HTML5 Boilerplate build script can auto generate your manifest.appcache file but it doesn’t out of the box.
Slightly hidden away in the docs:
To enable the appcache, just uncomment the file.manifest line in the project.properties file. It’ll create a manifest.appcache file and wire it all up.
You’ll find the project.properties file in build/project.
Now just do ant build and your HTML5 manifest file will be created and automatically referenced in your HTML file.
When using Xcode 4.2 for iOS development there’s an annoying bug where any exceptions crash to the main.m file instead of highlighting the line. Luckily you can set a custom breakpoint to restore the old and correct behaviour:
- Open the Breakpoint navigator (CMD + 6)
- Click the + button in the bottom left
- Select Add Exception Breakpoint
- Click Done

Voila!
So many iOS apps developers forget to remove the screenshots from their apps on the App Store; often revealing the horrendous times the screenshots were taken and detracting from the actual app.
iTunes Connect recommends the removal of the status bar, and Status Barred removes the status bar perfectly regardless of the screenshot being retina, iPhone, iPad, landscape or portrait. For $0.99 it saves a bunch of time whenever submitting or updating an app.
Available on the Mac App Store
A great, but underused location feature on iOS is the purpose property of the CLLocationManager.
So many apps ask for your location — give your users confidence in sharing their location by telling them why you need it!
Example:
locationManager.purpose = @"We'll only use your location to show you local events nearby.";
You need to do this before you start the location monitoring, so:
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
locationManager.purpose = @"We'll only use your location to show you local events nearby.";
locationManager.delegate = self;
[locationManager startUpdatingLocation];
Your users will now get a pleasant reason when you request their permission:

I’ve no idea why this is so rarely used, it’s been available since iOS 3.2.
Tip from the Apple docs:
You must set the value of this property prior to starting any location services. Because the string is ultimately displayed to the user, you should always load it from a localized strings file.
When creating an NSDictionary to serialize as JSON with TouchJSON you can’t set a BOOL value in the dictionary because it requires an object.
Use an NSNumber, which will be converted to true or false by the TouchJSON library.
Eg:
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:[NSNumber numberWithBool:YES forKey:@"shouldBeOn"];
[dictionary setObject:[NSNumber numberWithBool:NO forKey:@"shouldBeOff"];
NSError *error = NULL;
NSData *jsonData = [[CJSONSerializer serializer] serializeObject:dictionary error:&error];
Produces:
{
"shouldBeOn": true,
"shouldBeOff": false
}
Lion no longer installs all the printer drivers out of the box, I guess to cut down on unnecessary downloading from the Mac App Store. On 10.7.1 it wouldn’t let me add a printer with the error:
The software for this printer is currently unavailable. Please contact the printer’s manufacturer for the latest software.
However by running Software Update (from the Apple menu bar) after connecting the printer, it successfully downloaded the correct drivers. The Add Printer option then automatically installs the printer once selected.
Update, thanks to Rob in the comments for his suggestion that seems to be helping a lot of people:
If running Apple’s Software Update doesn’t fix it for you, open Preferences->Print & Scan and then hit ctrl-click (or right mouse) over the list of printers and select “Reset Printing System…”. That will uninstall all your printers but then I was able to add the Officejet by clicking the “+” button and the error went away.
Update 04/08/2011: last.fm have updated their client, either use the Check for updates.. in the app or download it.
Still no scrobbling but the release notes show they’ve fixed it for Lion:
1.5.4.28012 (mac) (04/08/11)
—————————-
* Plugin fix for iTunes 10.5
* 64bit version of the plugin for iTunes on Lion
Original:
Sadly the last.fm client doesn’t autostart under Lion when you run iTunes; and there’s yet to be an official update. In fact the entire client has been rather neglected, seeing its last update in October 2010.
If like me, you’ve lost a bunch of scrobbles because you’ve forgotten to open it, you can add last.fm to your login items so it’ll automatically open when your Mac starts.
Open System Preferences then > Users & Groups; select your username and toggle to the Login Items page. Click the + and select the last.fm app to add to the list.

If like myself, you have the last.fm not show in the dock (and only the menu bar), select the Hidden checkbox.
Unfortunately there’s no iPhone / iPad scrobbling support on Lion yet, and I’m not sure how iOS 5 WiFi sync will be able to handle it..