App Store Review Guidelines
The App Store Review Guidelines are a document published by Apple Inc. that dictates what an iOS application in the App Store can and cannot do. It completely excludes several categories of application from iPod touch, iPhone, and iPad devices that are not paired to a Mac running Xcode. Fans of these iProducts defend Apple's practices, claiming that almost nobody demands the functionality that the Guidelines ban. Even if this is true of each individual item, there are still a lot of people who want one or more items on the list as a whole.
Unlike Microsoft and Google, which have made their Windows Store Policies and Google Play Developer Program Policies available to the public since day one, Apple treated its Guidelines as a trade secret for roughly six years. This history of secrecy has left a bad impression on some developers.
For the first couple years that the App Store operated, it didn't even share the Guidelines with paying members of the iOS Developer Program, forcing a lot of guesswork for which the media criticized Apple. In late 2010, Apple started making the Guidelines available to paying members but not to Registered Apple Developers who had not subscribed to the iOS Developer Program. This posed a problem: an application developer considering iOS for the first time could pay $99 to join the Program only to discover that his application concepts fell into a category of guaranteed rejection. The recommendation back then was to use a version of the Guidelines leaked in September 2010 and/or brainstorm several ideas for applications in case one or two ended up forbidden outright.
Only in June 2014 did Apple officially make the Guidelines available to the public, according to a Bitcoin-related Slashdot submission. Over the years, forbidden practices were added, and other forbidden practices were removed.
No app for that
An iOS app officially can't do any of the following:
- Video games with realistic violence
- "Realistic portrayals of people or animals being killed, maimed, tortured, or abused, or content that encourages violence." (1.1.2)
- Video games depicting the U.S. Civil War of 1861-1865
- In June 2015, Apple removed military simulations featuring the Confederate States of America as one of the sides from the App Store. Some games were readmitted later, but it remains unclear how military simulations can meet the "real government" rule below.
- Card counting
- "Illegal gambling aids, including card counters, are not permitted on the App Store." (5.3.4)
- Satire of an identifiable person or organization
- "'Enemies' within the context of a game cannot solely target a specific race, culture, real government, corporation, or any other real entity." (1.1.2)
- An app satirizing Tiger Woods was rejected
- Fan-created applications celebrating an organization
- "Quoth Steve", a quote of the day app based on Steve Jobs quotations, was rejected.
- Video games published by companies now out of business
- Video game publishers often use emulation to rerelease older games on iOS. These emulators are "self-contained in their bundles," (2.5.2) that is, cryptographically locked to run only one game. An emulator not locked to one game would have to "download, install, or execute code" from a disk or ROM image, even if the image is lawfully made per 17 USC 117(a)(1). In addition, an emulator can't even mention the platform that it emulates if said platform is battery-powered.
- "don’t include names, icons, or imagery of other mobile platforms in your app or metadata, unless there is specific, approved interactive functionality." (2.3.10)
- Launcher replacements
- Though iOS 8 finally allows for keyboard replacements, Apple still provides no way for third parties to make app launchers that are more accessible to people with disabilities.
- "Apps that create alternate desktop/home screen environments or simulate multi-app widget experiences will be rejected." (2.5.8)
- WLAN utilities
- You won't find any applications for discovery and troubleshooting of wireless local area networks on iOS. For example, an application might let the user test his router for WPS or other security holes, but not on iOS. Or an application could let the user find a router by playing "hot and cold" with signal strength, but not on iOS. Or an application could let the user take notes about a Wi-Fi hotspot that a device discovers and use those notes to contribute to a collaborative database of public hotspots, but not on iOS. Mozilla, maker of the Firefox web browser, has released an Android app called MozStumbler to map access points, but it can't be ported to iOS because Apple provides no public API for applications to enumerate the SSIDs in range of the device's WLAN radio. And the iOS version of WiFi-Where requires a jailbreak. (Windows Phone reportedly has the same problem.) The only WLAN tools on iOS are tools to scan networks to which your device has already associated.
- "Apps may only use public APIs" (2.5.1)
- Web browsers that implement HTML features that Apple has left out of Safari
- You can't get Firefox with the Gecko engine on iOS. Mozilla has a "Firefox" app on the App Store, and Google has a "Chrome" app, but they're Safari with a different user interface and the respective browser's bookmark, history, and password sync tool. Nor did WebGL work outside of iAd modules prior to iOS 8. Uploads using the
<input type="file">element don't work either except for pictures and videos. Broken rendering in Safari has in fact caused users to abandon iOS.
- Book reading programs that use the volume buttons to change pages
- "Apps that alter or disable the functions of standard switches, such as the Volume Up/Down and Ring/Silent switches, or other native user interface elements or behaviors will be rejected." (2.5.9)
- Professional-grade applications that the user needs to evaluate first
- Apple's ban on free trials is holding back ports of Mac software to the iPad Pro.
- Notifications on an air-gapped local area network
- Since Apple deprecated VoIP background mode in mid-2017, applications for iOS need to use PushKit, Apple's proprietary push notification service. If an iOS device is associated to a network that is not connected to the Internet, it has no way of receiving notifications from PushKit.
Apple occasionally backpedals:
- Game makers
- Prior to June 2017, the Guidelines banned apps that "download code in any way or form" or "install or launch executable code". This was intended to require each application to be self-contained, but it ended up banning apps whose purpose is programming, such as a game maker that plays games that another user has created and shared. Apple replaced it with "Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user." (2.5.2)
- Door-to-door preaching
- Prior to around 2014, location services could not be used for "dispatch" or "fleet management", casting doubt on the suitability of iOS for apps that aid in proselytizing in a car group and tracking follow-up visits. The version as of early 2018 makes the intent clear, namely that iOS location is not intended for emergency services (5.1.5).
Apple completely refactored the Guidelines once circa 2017, renumbering all items. A refactor may cause things formerly specifically banned to instead be included in a larger category related to the intent, with collateral damage unrelated to the intent no longer affected. The refactor of 2017 dropped these:
- Russian roulette (old 15.5) in favor of "Depictions that encourage illegal or reckless use of weapons and dangerous objects" (1.1.3). A paintball marker clearly identified as such is not "weapons and dangerous objects".
- A specific reference to Chatroulette from "Apps with user-generated content or services that end up being used primarily for pornographic content" (1.2, formerly 18.2).
- A blanket ban on use of e-mail address to identify a previously established user account and the resources available to that account, such as Amazon book, music, and video libraries and Dropbox files. Apple doesn't want apps to require personal information that isn't directly relevant. Because the previous ban on sharing "require users to share personal information, such as email address and date of birth, in order to function" went too far, Apple weakened it: "except when directly relevant to the core functionality of the app or required by law." (5.1.1(ii)) This allows accessing externally purchased resources from an app (3.1.3).
Even if an iProduct is technically superior in some way to a particular Android product, that's no help if somebody depends on a particular application, and Apple has made the business decision to allow that application to remain exclusive to desktop or Android. For some people who value simplicity and cannot anticipate needing to do any of these tasks in the next six years, an iDevice may be the right choice. But for the rest of us, Droid does what iDon't. And who knows? Your needs might soon grow to encompass one of these.
Disproof of Turing completeness
The term "general-purpose computer" is often defined in terms of Turing completeness, or whether a machine can act as a universal Turing machine. (Because a Turing machine has unbounded memory, real-world "Turing completeness" is slightly weaker, implying equivalence to a Turing machine with bounded memory.) The following is a proof that the iPod touch, iPhone, and iPad are not Turing complete out of the box.
Consider a computer program with the following pseudocode, titled "Pick-a-Winner":
- Let Players be a queue of two to six distinct symbols, one of which is "Vladimir".
- Let Dice be a source of random natural numbers uniformly distributed from the list [1, 2, 3, 4, 5, 6].
- Repeat the following steps until the length of Players is 1.
- Let current be one element popped from Players.
- Let roll be one element popped from Dice.
- If roll is not 1, push current to the end of Players.
- If the remaining symbol in Players is "Vladimir", accept and halt; otherwise, reject and halt.
Pick-a-Winner could be trivially implemented on a Turing machine, with Players encoded at early positions on the tape and the remainder filled with enough Dice to have at least five 1 values. (The length of Dice will form a negative binomial distribution, the same distribution whose long tail doomed The Little Match Girl.)
However, the process of Pick-a-Winner is equivalent to Russian roulette. As stated above, Apple Inc. refuses to digitally sign a program implementing the rules of Russian roulette. But any universal Turing machine can run Pick-a-Winner. Therefore, a machine that refuses to execute a program that Apple has not signed cannot be Turing complete because Pick-a-Winner is excluded from programs that it can run. This makes an iPod touch, iPhone, or iPad without a developer license or jailbreak not a general-purpose computer, QED.
This proof became weaker in mid-2015, when Apple loosened its policy to let Mac owner install iOS apps distributed as free software on a device without paying a recurring fee. So an iOS device owned by a Mac owner is LBA-complete (that is, Turing-complete except for a limitation on memory), though requiring each iOS device owner to buy a Mac is still not unambiguously reasonable. It became still looser in June 2017 with the policy change to allow sharing projects in Swift Playgrounds and similar apps.
- Kyle Orland. "Apple bars Civil War games from App Store over Confederate flag imagery". Ars Technica, 2015-06-25. Accessed 2017-01-31.
- Owen S. Good. "Apple store readmits Civil War strategy game featuring Confederate flag". Polygon, 2015-06-27. Accessed 2017-03-29.
- Nellie Bowles. "Quoth Steve Jobs, but Never in the App Store". Re/code, 2014-03-16. Accessed 2017-04-29.
- Michael Horowitz. "Router Security Checklist". 2015-11-11. Accessed 2015-11-12.
- SimonS et al. "How to find a router at an unknown location in a house?". Super User, 2016-04-10. Accessed 2016-04-14.
- Jacqui Cheng. "Firefox is out of the iOS game until Apple changes its ways". Ars Technica, 2013-03-11. Accessed 2017-01-31.
- "When will WebGL be supported on iOS Mobile Safari?" Apple Support Communities, 2011-12-29.
- Lauren Goode. "The iPad Pro has an App Store problem". The Verge, 2015-11-19. Accessed 2017-03-23.
- Benjamin Mayo. "Xcode 7 allows anyone to download, build and ‘sideload’ iOS apps for free". 9to5Mac, 2015-06-10. Accessed 2017-04-18.