CarrierCompare's first version (left) was pulled from Apple's iTunes App Store for displaying signal strength. The new version took that feature out.
NEW YORK (CNNMoney) -- A funny thing happened to startup SwayMarkets after CNNMoney ran a story about its CarrierCompare app two weeks ago: The app got yanked from Apple's iTunes App Store.
CarrierCompare, which allows you to see which cell phone company offers the best service for your iPhone in any given location, vaulted into the venerable "Top 25" list on April 13, the day the story was published. CarrierCompare became the most-downloaded app in the utility category that day, beating out perennial top utilities like the top flashlight app and "Find My iPhone."
Then, the story took an unexpected turn, revealing the murky and seemingly haphazard system Apple has put in place to control its App Store.
Apple (AAPL, Fortune 500) notified the SwayMarkets team on the afternoon of April 13 that it had pulled CarrierCompare as well as the company's NetSnaps app, which was released in December.
A representative from Apple's app review board called the startup, explaining that the apps broke one of Apple's golden rules: They used an application programming interface -- essentially a way for the app software to talk to the iPhone's operating system -- that Apple hadn't approved.
The API allowed CarrierCompare and its sister app to collect signal strength data from iPhones. Gathering that information isn't a cut-and-dry no-no per se, but since the code hadn't received Apple's thumbs up, it was a no-go.
The removal of the apps surprised SwayMarkets, which had been led to believe that the API was okay to use.
The SwayMarkets team found the code on a developer forum, and SwayMarkets used it successfully in its NetSnaps app for five months before Apple took issue with it.
The company was even more convinced that the API was kosher due to a separate snafu in December. At first, Apple did not approve the NetSnaps app because SwayMarkets made use of a different unapproved API. When SwayMarkets removed that API, which displayed results using the phone's screenshot function, Apple approved the app without saying anything about the signal strength API.
Then, two weeks ago, CarrierCompare got Apple's seal of approval.
So what changed in the hours after CarrierCompare hit the app store? No one can be entirely sure, because Apple doesn't provide a lot of details about its approval process, even to developers. Apple declined to comment on its review system or CarrierCompare for this story.
But an interview, SwayMarkets founder Amos Epstein said many developers have reported similar circumstances: An app is approved, goes viral, hits the Top 25, and then gets removed for some previously unforeseen coding goof that Apple later discovered.
That has led the general developer community and Epstein to believe that overworked Apple reviewers, with thousands of apps waiting in the approval queue, likely don't test apps too thoroughly at first. But once they gain popularity, the Apple team gives them a closer look.
"When we hit the Top 25, we expected to receive a little bit more scrutiny from Apple, but we didn't know it would hit us like this," said Epstein.
The one saving grace was that Apple never removed the free version of CarrierCompare, even though the company said it would. The paid version was taken down, as was NetSnaps, but Epstein believes the decision to keep the free version up represented an act of good will on the part of Apple.
Still, eager to get the paid version back into the store, SwayMarkets engaged in some speedy coding to get the app up to Apple's standards. Two hours after Apple called, the SwayMarkets team was able to replace the signal strength indicator with a grayed-out shadow that said "coming soon."
They then waited two days for Apple to respond. Apple rejected that solution because it doesn't allow "coming soon" language for functions that may never become available. SwayMarkets then removed the signal strength indicator altogether, and Apple finally approved that solution this week.
The CarrierCompare story provides a rare glimpse behind the curtain of Apple's closed-door approval process. Most developers are unwilling to share this kind of information for fear of reproach from Apple. For his part, Epstein said the process left him a bit dismayed, but he understands where Apple is coming from.
"We've been very cooperative and thankful that Apple kept the free version of the app in the store," said Epstein. "It's been difficult as a developer to not feel supported in trying to help both Apple and consumers. However, I recognize Apple is running a very successful business. It's a momentary hurdle."
SwayMarkets argues that signal strength was the least-important metric its app collected, but it still is working on a solution. The team reached out to Apple in the hopes that it would approve the signal strength API for future use, but they haven't heard back yet.
Meanwhile, the startup continues to develop a workaround with an unusual method: building an Android app. Google's (GOOG, Fortune 500) Android marketplace, now known as Google Play, not only allows signal strength data to be collected, but it also allows more robust data to be gathered, such as whether a 4G connection is available.
Since Apple only took issue with collecting signal strength data -- but not displaying that information -- SwayMarkets intends to use the Android data to inform iPhone users of the signal strength data that Apple won't let it collect.
It will be interesting to see whether or not Apple nixes that idea as well. If the CarrierCompare story makes one thing clear, it's that in its relationship with developers, Apple holds all the cards.