Archive for May 24, 2012

Thursday, May 24, 2012

Airfoil Speakers Touch Removed From the App Store

Paul Kafasis:

We first heard from Apple about this decision two days ago, and we’ve been discussing the pending removal with them since then. However, we still do not yet have a clear answer on why Apple has chosen to remove Airfoil Speakers Touch.

It’s been in the store since 2009, and the version being rejected now was accepted back in April.

Update (2012-05-25): John Gruber:

Apple doesn’t provide APIs for apps to serve as AirPlay receivers. Rogue Amoeba backwards-engineered the protocol, and coded their own iOS AirPlay receiver implementation using (they claim, and I have no reason to doubt them) only public APIs. I think the bottom line is that Apple is saying that apps are not allowed to act as AirPlay receivers on iOS, but there’s no App Store guideline that explicitly forbids that.

Part of the problem is that Apple is not saying anything except that the app is rejected. There are apparently 5–6 other AirPlay receivers that have been rejected, yet the rules haven’t been updated to forbid this, and Apple has not given Rogue Amoeba any explanation.

Update (2012-05-29): Kafasis has posted a follow-up:

As we’ve stated, to the best of our knowledge we’ve implemented Airfoil Speakers Touch using only publicly-available APIs, and in full accordance with the developer agreement. We’ve continually asked what non-public APIs they believe we’re using and have received no response.

Indeed, there seems to be something of a communications problem with Apple, as we haven’t heard from them since May 23rd. Apple apparently did have time to contact The Verge about this issue on May 25th, however, repeating their claim that we’re using non-public APIs.

First Apple removes the app from the store, then it gives the developer an explanation that’s transparently false, then talks to the media—still without telling the developer the real reason for the rejection.

Unfortunately, both the App Store and the review process are entirely controlled by Apple, so there’s not a lot else we can do at the moment. We’re definitely concerned Apple may just silently stonewall on this, so we’ll keep discussing it here.

Update (2012-06-06): It’s back in the App Store, without the Enhanced Audio Receiving feature:

Regardless, Apple is using the authority they provide themselves in the guidelines and program license agreement to remove apps they don’t like. Specifically, they cited a provision in the App Store Review Guidelines which allows them to reject apps “for any content or behavior [they] believe is over the line”. That’s certainly disappointing, and frustrating, but it’s the nature of the system Apple has created.

If nothing else, we’re gratified to at least have come to an understanding that we didn’t violate the guidelines – Apple simply doesn’t want us providing this functionality in the App Store. Ultimately, if Apple doesn’t want it, we can’t provide it and users can’t have it.

Update (2012-06-08): Phil Schiller:

The story as I understand it is simple, and not accurately recounted on Rogue Amoeba’s website. Rogue Amoeba’s app added a feature that accessed encrypted AirPlay audio streams without using approved APIs or a proper license and in violation of Apple’s agreements.

Paul Kafasis:

While Apple licenses the ability for hardware manufacturers to play AirPlay audio, there is no such licensing program for software. When we inquired as to the possibility of this type of licensing being available for software manufacturers in the future, we were informed that it was unlikely. […] We steadfastly stand by our statement that Airfoil Speakers Touch violated no part of our agreements with Apple.

Apple is within its rights to reject whichever applications it chooses. However, it’s scummy that the official reason was the nebulous “over the line” clause, yet for the court of public opinion Schiller chose to cite other reasons, making it sound as though Rogue Amoeba violated an actual rule. The “without using approved APIs” seems meant to imply that there were APIs that Rogue Amoeba should have used, or that they used private APIs, when in fact neither is the case. It’s not clear to me why Apple decided to draw the line with this feature, when the now re-approved Airfoil Speakers Touch and some other approved apps also communicate via reverse-engineered AirPlay protocols.

Schiller also says:

Apple never said that we would pull the rug out from anyone, we in fact worked with this developer to ensure they update their app and remain on the App Store.

Recall that Apple’s first step was to pull the app, and it wasn’t until much later that it communicated with the developer at all. Schiller alleges that Rogue Amoeba violated an agreement, but Kafasis implies that Apple never specified what said violation was.