James Montgomerie’s World Wide Web Log

Hither Eucalyptus!

Earlier today I received a phone call from an Apple representative. He was very complimentary about Eucalyptus. We talked about the confusion surrounding its App Store rejections, which I am happy to say is now fully resolved. He invited me to re-build and submit a version of Eucalyptus with no filters for immediate approval, and that full version is now available on the iPhone App Store.

Since my previous post, I’ve been so pleased with the overwhelmingly positive articles, blog posts, comments and tweets - and also the emails from those of you who felt so strongly about the …

Whither Eucalyptus?


The situation has now been resolved. Read more in my later blog entry.

Original Post

If you’re wondering why Eucalyptus is not yet available, it’s currently in the state of being ‘rejected’ for distribution on the iPhone App Store. This is due to the fact that it’s possible, after explicitly searching for them, to find, download from the Internet, and then read texts that Apple deems ‘objectionable’. The example they have given me is a Victorian text-only translation of the Kama Sutra of Vatsyayana. For the full background, a log of my communications with Apple is below.

The Application Will Not Be Verified, Part II

“The Application “Application Name” was not installed on the iPhone “iPhone Name” because it could not be verified.”

I seem to have the worst luck with creating ad-hoc-provisioned iPhone apps. Fresh from discovering this when trying to release the last beta version of my app, I was hit with another problem with the same outward symptoms this time. Here it is, for web-posterity too, in the hope that it may save others from the hours of frustration and completely unnecessary futzing with certificates, keys, and the iPhone Program Portal site:

Don’t have files with colon characters (‘:’, displayed as ‘/’ …

Unpublished is Unpublic

John Gruber’s latest post, “Private”, calls Erica Sadun to task for her invention of a distinction between “private APIs” and “unpublished API’s”.  I completely agree.  The distinction is nonsensical.

On technical grounds, of course, it’s a valid distinction, if not a valid characterisation.  Her “unpublished” APIs are APIs that are available in public frameworks, but not documented in the headers.  Her “private” APIs are APIs in private frameworks (i.e. those with no headers, installed in the “PrivateFrameworks” directory, as opposed to the “Frameworks” directory).

There’s also a distinction from a programmer-level point of view.  It’s much easier to use …

The Application Will Not Be Verified

“The Application “Application Name” was not installed on the iPhone “iPhone Name” because it could not be verified.”

For web-posterity, a small thing I discovered: If your iPhone app beta testers are getting this error (probably along with an “ApplicationVerificationFailed” message from iTunes in the console), it’s possibly because you used command-line ‘zip’ to compress your app file, and it clobbered the symlinks within it, rendering the signature invalid.

If want to use command line zip to compress signed iPhone apps, you need to use the -y flag to get it to preserve symlinks.

Easy iPhone Application Versioning with agvtool

In which a semi-automated system for the versioning of iPhone applications is detailed. Said system ensures that the reader’s apps are always correctly versioned, and his users’ iTunes applications are never confused by an update of his beta builds.

Versioning your iPhone applications properly ensures that your app updates go smoothly, and also that when you make a beta build testers never get into the frustrating state where iTunes refuses to accept it because of versioning conflicts, leaving them to have to delete the older version, and its settings and documents along with it.

The system presented here is largely …

iPhone Images from Character Glyphs


In which a category allowing the creation of UIImages from Unicode characters, suitable for use as Tab Bar icons, is created, but a state of mild displeasure at the implementation of said category is engendered.

[If you just want code, with none o’ that darn readdin’, there’s a zip at the end of the post]

Adding a ‘test’ tab to my in-development iPhone app, I had a dilemma. My troublesome aesthetic sense was telling me that, despite being seen by no-one but me, it needed a good looking icon. My sense of efficiency, though, was telling me “No! Don’t …