If you were able to change the App Store guidelines, what would you change, and why?
Let me start by saying this is not intended to be a troll post but rather to foster a discussion about [the guidelines themselves](https://developer.apple.com/app-store/review/guidelines/).
The following are the rules I have issues with, why, and how I would modify them:
>**2.5.2** Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. 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.
The part about not being able to execute external code completely eliminates virtual machine applications for running operating systems within a hypervisor, it does not prevent an app from including a virtual machine, but it would effectively be useless because it would mean there could be no external connectivity within the virtual machine or a way to transfer files into the virtual machine.
>**2.5.9** 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. For example, apps should not block links out to other apps or other features that users would expect to work a certain way.
This should be on a case-by-case basis, allowing certain apps like cameras the ability to use the volume buttons as a shutter release allows them to simulate how a physical camera works, and in fact the included camera app does this.
>**4.2.7 Remote Desktop Clients:** If your remote desktop app acts as a mirror of specific software or services rather than a generic mirror of the host device, it must comply with the following:
>(a) The app must only connect to a user-owned host device that is a personal computer or dedicated game console owned by the user, and both the host device and client must be connected on a local and LAN-based network.
>(b) Any software or services appearing in the client are fully executed on the host device, rendered on the screen of the host device, and may not use APIs or platform features beyond what is required to stream the Remote Desktop.
>(c) All account creation and management must be initiated from the host device.
>(d) The UI appearing on the client does not resemble an iOS or App Store view, does not provide a store-like interface, or include the ability to browse, select, or purchase software not already owned or licensed by the user. For the sake of clarity, transactions taking place within mirrored software do not need to use in-app purchase, provided the transactions are processed on the host device.
>(e) Thin clients for cloud-based apps are not appropriate for the App Store.
This one is a big one…
* (a) Eliminate the part about only being able to connect over a local network, this prevents apps from providing the functionality to connect over the internet
* (a) Change the part about being able to only connect to user-owned devices because that prevents an app from connecting to a remote computer or server provided by work, school, or any remote server the user is renting/leasing
* Remove section (c), this prevents any service that provides access cloud-based computer access for a monthly fee.
* (d) This entire section prevents remote desktop apps from presenting any storefront to the user, you would not be able to access any storefront like Amazon, Steam, Microsoft Store, or any other form of store
* (e) This section conflicts with section **4.9.1** which states cloud game streaming services must provide a thin client for each game, either remove it or **4.9.1**.
I would like to point out that most remote access apps already violate sections (a) and (d)
>**4.9.1** Each streaming game must be submitted to the App Store as an individual app so that it has an App Store product page, appears in charts and search, has user ratings and review, can be managed with ScreenTime and other parental control apps, appears on the user’s device, etc.
>**4.9.2** Streaming game services may offer a catalog app on the App Store to help users sign up for the service and find the games on the App Store, provided that the app adheres to all guidelines, including offering users the option to pay for a subscription with in-app purchase and use Sign in with Apple. All the games included in the catalog app must link to an individual App Store product page.
This conflicts with **4.2.7(e)** which states thin clients for cloud-based apps are not allowed and will result in hundreds of thin clients being submitted to the App Store, as an alternative there should be an API for apps to create shortcuts on the home screen with unique icons, titles, and content rating information that go directly to that game in the catalog app permitted by **4.9.2**.
What would you change about the guidelines if you had the ability and why?