Dealing with App Store rejection

In the course of my work I’ve been submitting iOS (originally iPhone OS) apps since 2008, so I have quite some experience in this area.

Although Apple have always been diligent in manually inspecting app submissions and successful in weeding out the chaff, I get the impression that the demands of quality over quantity have gained greater emphasis in recent months.

The App Store Review Guidelines (a living document) have been tightened-up and certainly from my experience the App Review Team have been policing them with increased vigilance.

I’ve read about developers complaining that their app has been unfairly rejected, but in most cases I can sympathise with Apple’s stance. They have the expectations of a enormous customer base to fulfil and a squeaky-clean brand image to protect. If your gut instinct is that your app might be contentious, then Apple will probably think likewise.

Don’t for a minute imagine you are going to reverse their decision by engaging the App Review Board in a battle of wits. It’s Apple’s game and you must play by their rules. If they don’t like your app then they won’t publish it and no amount of picking holes in the App Store Review Guidelines is going to help your case.

Apple doesn’t respond well to legal threats or external publicity. Let’s face it, they haven’t grown to be the largest company in the world by being agreeable with everyone. They retain the best lawyers, designers and technical experts in the world and there is no benefit to be gained by arguing with them.

So enough of the ‘do nots’ and on to my advice.

Do thoroughly read Apple’s developer documentation before embarking on a new development project. The App Store Review Guidelines are actually written in an engaging and almost humorous style, so take the time to digest them fully.

If you feel that your app has been unjustly rejected or perhaps misunderstood then respond using Resolution Center. Ask for further clarifications if required and politely ask for their assistance in identifying precisely what it would take to overcome their objections. Make your responses courteous with a sprinkling of humility and you might be in with a chance.

Some developers might feel powerless going up against the 800 lb gorilla, but I have been successful in reversing some app rejection decisions by using diplomacy and a collaborative approach.

If all else fails, my expert consultancy is available – for a modest fee 😉

Mac OS X Lion and legacy SMB

mount_smbfs: server connection failed: Unknown error: -5996

For anyone else experiencing problems connecting to older Windows networking shares (using SMB/CIFS protocols) from OS X Lion hosts, here is why and what to do about it.

For many years Mac OS X included the Open Source Samba client, but from OS X 10.7 onwards this was replaced by Apple’s own Windows networking software. In making this change Apple also chose to disable support for the older SMB 1.0 protocol, which some file sharing devices still depend on.

If you cannot connect your Mac to a network storage device, then try this command which temporarily resurrects support for the older SMB 1.0 protocol:

sudo sysctl -w net.smb.fs.kern_deprecatePreXPServers=0

Note that this is a transient kernel fix which will revert back when you reboot your Mac.

Unfortunately I’ve heard that this option no longer works in OS X Mountain Lion (10.8), so if you can’t update your legacy storage device to support SMB 2.0 then you had better not upgrade!

(Apple support article HT4697 also describes this issue)

Gmail window in Safari

I like to have a separate Safari browser window for Gmail sessions, without the Safari toolbar or bookmarks bar.

It’s a bit of a pain to set this up each time the browser is reset, so here’s a handy tip for creating a bookmarklet which opens Gmail in an uncluttered window of its own:

javascript:window.open("http://gmail.com/","gmail","titlebar=0");

Save this bookmarklet to the first position in your personal bookmarks bar and you can also access it using the shortcut key Command+1.

EvoCam vs SecuritySpy

The options for network camera recording software are a bit limited on Mac OS. The two most popular products in this space are Evological’s EvoCam and Bensoftware’s SecuritySpy.

So which is best?

On price alone you might be tempted by EvoCam as it costs just $30 (under £20) for an unlimited number of cameras, while SecuritySpy will set you back £30 for a single camera license and a whopping £500 for unlimited camera support.

I’ve had an opportunity to evaluate both products and have come to the conclusion that you really do get what you pay for.

EvoCam does the job well enough and has a more polished user interface, but it also suffers from a major problem that lets it down badly, almost to the point of being unusable. For reasons unknown it ties up the processor for even a simple one camera recording setup.

Activity Monitor output taken for identical recording sessions is below:

In these examples (from a Mac Mini 2.26GHz Intel Core 2 Duo with 4GB RAM), EvoCam consumes 85% CPU and 90MB real memory, while in comparison SecuritySpy consumes a meagre 6% CPU and 21MB real memory. That’s quite a difference and it’s very noticeable when you try to use the same host machine for other work.

So if you have the luxury of a dedicated powerful server for your camera recording then EvoCam is probably the most cost effective option, but if you want something that works reliably and doesn’t take over your machine then SecuritySpy is well worth the extra investment.

iPhone MMS settings for O2-UK

Do you use an iPhone on the O2-UK network and find that you can no longer send or receive MMS since the last iPhone software update?

It seems that Apple’s carrier bundle settings for O2-UK don’t recognise that some O2 customers aren’t on official iPhone tariffs and so need different MMS settings to the default.

Below are the O2 MMS settings that you should use if you are not on an official iPhone tariff. For example you might be fortunate enough to still be on a Simplicity tariff with unlimited data.

Settings > General > Network > Cellular Data Network > MMS

APN wap.o2.co.uk
Username o2wap
Password password
MMSC http://mmsc.mms.o2.co.uk:8002
MMS Proxy 82.132.254.1:8080
MMS Max Message Size 307200
MMS UA Prof URL (leave blank)

Switch your iPhone off and on again after making these changes and MMS should be fully restored.