As of yesterday, all anyone knew was that Airfoil Speakers Touch was removed from the App Store. The developer, Rogue Amoeba, appeared not to know why, and they probably didn’t.
Today, Apple confirmed to The Verge that it was pulled for using non-public APIs. This was in response to its ability to receive audio via Apple’s AirPlay protocol. David Smith (unaffiliated with either Apple or Rogue Amoeba) explains:
As best I understand the technical details of this, in order for any of these apps to operate they must then make use of this private key to impersonate an Airport Express. It seems entirely reasonable that Apple would not condone the use of their hacked private key in this manner, least of all in an App Store app.
In a sense then, it wasn’t using a non-public API, but a reverse-engineered feature. A pedantic, negligible difference, but a difference all the same, leading John Gruber to comment:
It’s not enough to comply with the letter of the rules; developers must comply with the spirit of them as well. Finding a loophole in the letter of the rules doesn’t grant you a Get Out of Jail Free card in the App Store. It will (hopefully) just lead to Apple adding a new rule to close the loophole.
Rogue Amoeba complied fully with the letter of the regulations. They used only public APIs, and essentially built their own AirPlay one. But because it didn’t comply with the spirit of the rules, it was booted.
I’m not sure Rogue Amoeba was in the right here. I think they knew they were treading a fine line (something which Smith points out), but went ahead with it anyway in the hope that it would be allowed. Apple certainly could have handled this better by informing the developers why the app was being pulled, instead of waiting until after they had done so.