Why Stanza Had to Disable USB Syncing

Yesterday, the news that the makers of eReader app Stanza were forced to remove a popular feature from the app: the ability to transfer books between a PC and Stanza using a USB cable (with the assistance of another application, iPhone Explorer).

This post from The LA Times has some good info, including this statement from Apple: “”We requested Stanza remove the USB functionality in their app as it was a simple case of the developer using private APIs in violation of the developer agreement.”

eBookNewser wanted to learn a bit more about what Apple’s developer license agreement actually said. You actually have to be registered as an app developer with Apple in order to log in to Apple’s iPhone Dev Center and access the SDK, of which the agreement is a part. But, a source with access to the SDK pointed eBookNewser toward Apple’s agreement, which was recently altered, forcing Stanza to make the change to their app.

We found that the license agreement in the SDK from October 2008 (in section 3.3.4 of iphone_sdk_agt_ea0495.pdf, for those of you with access to the SDK iself) says “An Application may write data on a device only to the Application’s designated container area, except as otherwise specified by Apple.” So, according to that agreement, Stanza was in compliance, because, in order to perform a USB sync, the app was only reading from outside its container.

But, in the October 2009 version of the same section of the agreement, Apple added a small change to the language: “An Application may only read data from or write data to an Application’s designated container area on the device, except as otherwise specified by Apple.” So, now it’s against Apple’s rules for Stanza, via iPhone explorer, even to read files from outside its container.

(The LA Times interviews the maker of iPhone explorer for an explanation of what folders Stanza was using to enable USB syncing–it’s a little confusing, but basically iPhone explorer enables access to the iPhone’s pictures folder, which is outside of any app’s particular folder, and Apple didn’t like that.)

The question still remains as to whether this is Apple being controlling over content, or just trying to protect its OS against a developer screwing up the guts of the iPhone’s software. Ars Technica more clearly explains the way USB file-sharing works on the iPhone, and also points out that Apple is including a file sharing feature on the version of the iPhone OS slated to run the iPad, and may also include the same feature in a future version of the OS for the iPhone.

So, all in all, a rather techy issue, and one that still doesn’t tell us much about whether Apple is being evil. In the meantime, Stanza users can still sync books between the Stanza desktop app and the iPhone, assuming the two are on the same WiFi network.