Under The Microscope

Airfoil Speakers Touch 1.0.1 Finally Ships

First, the basics: Airfoil Speakers Touch version 1.0.1 is now available in the App Store. This update fixes issues with audio sync that could be heard when audio was playing to multiple outputs. If you haven’t used Airfoil, it will let you send any audio from your Mac or PC out to the AirPort Express, Apple TV, other computers, and with Airfoil Speakers Touch, to your iPhone or iPod Touch.

There’s a bigger story here, however. It’s one that’s been told before, but until things change, it needs to keep being told. Simply put, the App Store is broken.

Over Three And A Half Months

Our problems began back in July, when we first submitted this bug fix for Airfoil Speakers Touch to the App Store. While we generally disliked the restrictiveness of the review process, we’d never had any direct problems with it. Further, this was a mere bug fix – it just improved the way audio was received. It was functionally identical to the already-approved version 1.0.0. As such, we expected to have this update available by the end of July or early August.

Not. even. close. Today, over three and a half months after we initially submitted our bug fix update for review, it’s finally available. So what happened?

Our First Two Rejections

After our first submission back in July, Airfoil Speakers Touch was rejected, for using “Apple Logo and Apple-owned Graphic Symbols”.

Apple Logo and Apple-owned Graphic Symbols:

You may not use the Apple Logo or any other Apple-owned graphic symbol, logo, or icon on or in connection with web sites, products, packaging, manuals, promotional/advertising materials, or for any other purpose except pursuant to an express written trademark license from Apple, such as a reseller agreement.

It wasn’t clear what precisely this was about, but if you’ve used the application, you’ve likely seen something similar to this screenshot:

As you can see, Airfoil Speakers Touch displays an image of the sending Mac, with a screenshot showing the source application. If you’re sending from an iMac with Safari as your source (as pictured), it shows your iMac running Safari. If you’re sending from a MacBook Pro, it shows a MacBook Pro, and so on. These computer images are provided by Mac OS X itself, using a public function expressly for this purpose.

We also show the source application’s icon – Safari in the above example. This icon also comes from a public function provided by Apple as part of Mac OS X. These functions are expressly made to enable developers to get this artwork, and use it just as we are.

We’ve done this before, in Airfoil on the Mac and Windows, when we talk to the Apple TV. It’s a nice little bit of polish, but it’s also functional – it lets the user verify what machine they’re receiving from, what source application, and what that source application is doing. Nonetheless, it seemed from this rejection that Apple wanted it out.

Naively, we simply re-submitted the application without changes, in the hopes of getting a more sensible reviewer. A full four weeks later, on August 31st, we were rejected again.

Our Third, And Final, Rejection

At this point, we knew we needed to talk to a real person. Perhaps, we reasoned, an app reviewer was simply reading their guidelines and following them overzealously. Following Craig Hockenberry’s advice, we sent an email to the App Review address, explaining how our application worked and why we felt there were no trademark issues. Eventually, on September 2nd, we were told to resubmit the application for further review. Then we waited.

On September 12th, we received a form email stating that the review was taking longer than expected. No other information was given.

On September 21st, we emailed to ask where we were in the process. On the 22nd, we were again told it was “still undergoing a review process”, with no additional detail.

Finally, on October 5th (over a month since the most recent submission, and almost two and a half months since our initial submission), we were contacted by an Apple employee via phone. We were told that despite our explanation, Apple was unwilling to ship this update, and it would again be rejected.

However, later that day a second Apple employee phoned. He was a fan of our products, and wanted to take another crack at getting this approved the way it was. With a mixture of hope and trepidation, we provided him even more details, and awaited his reply.

In mid-October, he called again, saying that there was nothing for it. In order to ship our update, we had to stop showing both the computer images and Apple’s app icons. It didn’t matter that Apple provided us with code expressly to enable us to show these, nor that the same functionality had been previously approved. We’d reached the end of the road – if we wanted to ship this update, we had to remove the functionality.

“When angry, count to four. When very angry, swear.”

Needless to say, we were quite upset. There was no change between the approved 1.0.0 and the new 1.0.1 – this functionality had already been approved once. Further, if simply showing another application’s icon is a trademark issue, then the software world is going to need to make some drastic changes, and Mac OS X’s Dock will be the first to go.

Worst of all, however, Apple left 1.0.0 in the store, a buggy version being downloaded hundreds of times per day. The exact same “infringing behavior” could be found in 1.0.0, and they weren’t taking that down. As such, the only thing Apple’s process was doing was preventing a needed bug-fix from reaching the hands of our mutual customers.

Bend, Don’t Break

Of course, being angry wasn’t helping our users, and that’s always our goal. We didn’t want to remove functionality to do it, but we had little choice, because Apple controls the means of distribution for iPhone software. We had to compromise.

Now, when you receive audio on Airfoil Speakers Touch, you’ll see a generic computer screen, not your specific Mac. Further, if you’re receiving audio from an Apple app, such as Safari, QuickTime Player, or iTunes, you’ll see this:

If you tap the artwork in Airfoil Speakers Touch, you’ll be taken to this page, providing a pithier summary of the situation. Is it likely to change anything? Probably not. But it was the only way we could remove this functionality and still sleep at night.

What Now?

As noted on that page, we urge you to do two things. First, be aware that Apple is acting as a gatekeeper, and preventing you from getting the software that developers such as ourselves are trying to provide you. We wanted to ship a simple bug fix, and it took almost four months of slow replies, delays, and dithering by Apple. All the while, our buggy, and supposedly infringing version, was still available. There’s no other word for that but “broken”.

Second, consider donating to the EFF. The change we made to Airfoil Speakers Touch wasn’t their idea, nor have they endorsed it. However, in addition to being one of Rogue Amoeba’s favorite charities, they’re also the organization defending the rights of both consumers and developers in the digital world. If Apple is to change, it may take such an organization to make it happen.

Focusing On The Mac

In the future, we hope that developers will be allowed to ship software without needing Apple’s approval at all, the same way we do on Mac OS X. We hope the App Store will get better, review times will be shorter, reviews will be more intelligent, and that we can all focus on making great software. Right now, however, the platform is a mess.

The chorus of disenchanted developers is growing and we’re adding our voices as well. Rogue Amoeba no longer has any plans for additional iPhone applications, and updates to our existing iPhone applications will likely be rare. The iPhone platform had great promise, but that promise is not enough, so we’re focusing on the Mac.

68 Responses to “Airfoil Speakers Touch 1.0.1 Finally Ships”

  1. Peter Cohen says:

    Wow, you people jabbering about copyrights are genuinely some of the stupidest morons I have laid eyes on. You’re apparently incapable of even basic reading comprehension.

  2. Paul says:

    Bad Apple.
    I never found the iphone attractive: it is a censored environment.

    Why does Apple create such an uncharacteristic sticky mess? And will it result in talent returning to the Mac platform (which has definitely suffered from developers flocking to the iphone) ?

  3. Peter Cohen (not) says:

    I apologise for being an abrasive misinformed bully.

  4. Trey says:

    I think the UIWebView comparison is a red herring. If the user’s typing/clicking a URL, they know the images aren’t coming from the app. If a web site is using Apple’s copyrighted materials, then Apple’s going to address it with them.

    In this case, RA wrote a really slick app that uses Apple’s copyrighted images in a way that looks like it’s part of the app. If Apple gives them a pass on this, then Apple loses the ability to enforce the terms on the next developer (who might be using them in a way that Apple doesn’t approve of–assuming that they’d approve of what RA’s doing).

    In seems to me it’s not an app review problem as much as it’s probably a problem with the lawyers at Apple and the guidelines they’re providing. Since this is addressed in the agreement that RA accepted, Apple’s completely within their rights to reject the app–and probably has to for copyright/trademark purposes (not IANAL).

    There are serious problems with how applications are reviewed, but I think this is different. Unfortunately, the end result is the same for the developers and the end users.

  5. techydude says:

    i am an Apple iPhone customer, and a registered-but-not-yet-active iPhone dev. it’s precisely this app-store approval process bullshit that makes me run a mile and put my time elsewhere.

    ok, i’ve heard your back-n-forth arguments here. fine. now, just for a moment, start thinking like business people, and like customers, instead of lawyer robots & Apple apologists like Lamarche.

    so fuckin what if RA use Apple-copyrighted pictures in their app? who is losing here? i mean really, who loses? i buy the app, RA get 70%, Apple get 30%, and i get a great app that BENEFITS from using those images from the obvious clarity of UI communication brought by their use.

    who benefits from Apple following the letter of the dev contract (and likely the boneheaded trademark laws that require them to behave like an ahole at every turn)? not Apple, not RA, & certainly not me.

    Apple need to FACILITATE the LEGAL use of their trademarks in a respectful and mutually agreed and beneficial way, or this bullshit is gonna haunt them for the rest of the App Store’s days. and no one wins from that.

    and this remains but one of the issues dogging the app store approval process.

  6. Alex says:

    Love your products, I hope this issue gets the high level attention at Apple that it deserves. Punishing a developer to creating a “cool” application on the iPhone is like shooting yourself in the foot.

  7. Steve G says:

    Sorry to hear about this situation. I think Apple really needs to scale back the useless apps (really, 100,000+ is too much) and weed out the useless developers so that it can focus its energy on getting good apps by good developers approved quickly by qualified reviewers.

  8. Charlie Mote says:

    RA are great developers! Have you thought about writing apps for Maemo 5 (and 6)? Between At&T and this kind of idiocy, as well as all the “iDont’s” I am looking forward to a Nokia N900 and all of the innovation this capable hardware and open OS are going to bring.

  9. Sykes says:

    Well, Rogue Amoeba, I certainly hope that eventually you’ll return to producing applications for the iPhone. I hope Steve Jobs is pay attention to this case as a particular example of how the App store’s review process is woefully inadequate. Then, not only should Steve Jobs re-do the review process, but he should publicly apologise and try to get companies like Rogue Amoeba back to developing iPhone products.

    Here’s to hoping!

  10. Lars says:

    The public API you are referring to is a Mac OS X API. You assert that it is alright to transfer the image provided by that API to another device and display it there. This may or may not be the case but in my opinion, you argument could be a non sequitur. Just because one system provides you the means of getting a certain bitmap does not automatically entitle you to use that bitmap somewhere else.

    I think you should be allowed to use it and as a fellow developer I dislike the AppStore model as much as the next person. Nevertheless, your argument isn’t really logically sound here as far as I’m concerned.

  11. Moschops says:

    Do I recall correctly that Apple have a history of letting others develop, watching to see what sells, and then taking that market for themselves?

  12. Devin says:

    I enjoy RA’s products, but if you think throwing a shit fit to get the “blogosphere” into a tizzy is going to get you to wiggle out of the terms of your contractual agreement with Apple, you’re wasting your fscking time. I don’t care about the technical details. You are essentially displaying Apple’s icons within the context of YOUR application. VNC viewers are different. They view Apple’s icons with the context of Apple’s application, inside the context of the VNC viewer’s application. Totally different.

    I really think you need to take this post down, man up, and read your agreement again.

    Jesus…

  13. Law Student says:

    This is what happens when a company is taken over by their legal team. I say, Apple should take their lawyers and replace them with engineers.

  14. techydude says:

    & let me clarify what i mean by calling Lamarche an Apple apologist (it could’ve been alot worse):

    sure, we all signed up to the App Store terms. rightwingnuts usually think “well then, all bets are off, what happens happens, and any bad shit is your problem, you knew what you were getting into”.

    thousands have given it a shot, and won. lovely.

    but quite a few also lost big, having invested heavily, only to be fucked over by vague or inconsistently applied approval criteria.

    people on the outside don’t make the app store approval process better.

    people on the inside bending over & taking a reaming from Apple for the kinds of stupidity we’ve seen from Apple’s borked approval process without saying a word, doesn’t make the app store approval process better.

    the only way the app store approval process will get better is when those on the inside bump into its shit and say Not Good Enough, Apple. they’re not God, they’re not infallible. and there’s far too many lawyers involved.

  15. TonyB says:

    RA guys.

    I feel bad for you, but to a large extent you screwed yourself here. Actually, the distinction is very blurred in terms of who is right. Here’s an example…. Let’s say I develop an app which uses a web browser control (provided by apple)….

    …and I connect to some random website that happens to have apple images on it…

    …that’s EXACTLY the same as this app does. It downloads an image, from somewhere else… In fact what your app did is better. Since you download the image from an app running on a machine with (you assume) a licensed copy of OS X on it which grants the user the right to use those images (whether it grants them the right to transmit them over a network is another matter entirely to which I don’t know the answer.)

    The argument about public APIs etc is nonsensical. They are a different SDK entirely. A much better argument would have been to say “I download that image, from a machine, with a paid for copy of OS X on it which permits my end user to use that artwork. It’s not part of my app, it’s downloaded content, just like pointing a web control at apple.com”

    For that matter, why didn’t you just put a little switch line of code in there that waits 30 days from submission date before turning the icons back on. You could have just quietly turned it off for a while if you think you’re in the right. No one would ever have known (or cared) and you would have felt like you’d got one over on them. Now you have all that attention drawn to you for no particularly good reason…

    I agree their responses are draconian and absurd and would not stand up to even a modicum of scrutiny in terms of “protecting customers.” Clearly they just (excessively and un-necessarily) protect apple. But screaming “no fair” and “You let me do it last time!” isn’t going to get you anywhere…

    That said, your apps are wonderful and I wish you every success in your future endeavours…

  16. Ari says:

    I feel bad for your ordeal but you could have avoided all of that trouble by including your own licensed generic looking icons to represent the computer you were connecting to. Instead, you chose to stubbornly use the defence that just because an icon is available to you via an API on a mac, that gives you the right to use it any way you see fit. What if the customer was running a custom replacement set of icons on their desktop? How would your app be able to tell the difference between the original icons and the replacement? What if the author of the set of icons only gave permission for use on mac desktops and not for any other use? Your program would cause the end user to be breach of the distribution agreement without their concept or knowledge.

    As a windows developer, I can access virtually any icon on a windows box through various APIs but that does not give me automatic permission to publish those icons on a website or within a a separate mobile client UI as images.

  17. Gex2501 says:

    Have you considered releasing your programs for the iPhone jailbreak community? I regular purchase tweaks and programs that are only available via jailbreak BECAUSE they aren’t approved by apple. I think you’ll find your programs well received. I love your Mac software.

  18. Anonymous says:

    1) update Airfoil to NOT send the images to the iphone App
    2) re-submit the iPhone app, requiring the newer version of Airfoil
    3) app is approved for not showing the copyrighted images
    4) update Airfoil to send the images again
    5) PROFIT ( or QED app store review process is broken )


Comments for this post have been closed. Thanks for reading!