Apple relaxes cross-compiler restrictions, publishes app review guidelines
Apple announced today that they're revising controversial sections of their developer program license and for the first time publishing their review guidelines:
We are continually trying to make the App Store even better. We have listened to our developers and taken much of their feedback to heart. Based on their input, today we are making some important changes to our iOS Developer Program license in sections 3.3.1, 3.3.2 and 3.3.9 to relax some restrictions we put in place earlier this year.
In particular, we are relaxing all restrictions on the development tools used to create iOS apps, as long as the resulting apps do not download any code. This should give developers the flexibility they want, while preserving the security we need.
In addition, for the first time we are publishing the App Store Review Guidelines to help developers understand how we review submitted apps. We hope it will make us more transparent and help our developers create even more successful apps for the App Store.
The App Store is perhaps the most important milestone in the history of mobile software. Working together with our developers, we will continue to surprise and delight our users with innovative mobile apps.
So 3rd party cross-compilers like Adobe Flash CS5 are back in, but perhaps more important the cross-compilers used to create games are less nebulous as well. Oh, and maybe the FTC and EU can now switch gears from policing app markets to, you know, looking into SMS rates?
Registered iOS developers can find the newly published guidelines at https://developer.apple.com/appstore/resources/approval/guidelines.html
[Apple PR]





































There are 18 comments. Add yours.
True Apple Care
'bout time.
It would have been difficult for Jobs to continue to lie about "cross platform" development inevitably leading to substandard apps when Epic Citadel -- the game he gushed unbelievably "that's on a phone" last week -- was developed with multiplatform Unreal Engine, and, as such, would most likely have been banned under Apple's previous guidelines.
Aww. I've been savoring Apple sticking a bat up Adobe's butt! Playing nice-nice just isn't that much fun.
@(Copy of) Dev: Unreal's engine is very likely written in C and C++ with lots of OpenGL/Direct3D. The vast majority of games are likely written in C/C++ and OpenGL/D3D. One of the reasons iOS has so many games.
@Shrike
No. Unreal Engine itself is written in C++, but most games using the engine use UnrealScript -- a proprietary scripting language inside UnrealEngine -- to author gameplay mechanics without modifying the core engine. Use of UnrealScript would have been banned under the old 3.3.1/3.3.2 terms, and it is also quite likely the existence of the UnrealScript interpreter inside the UnrealEngine would have been banned, as well.
Addendum: Of course, some devs modify the engine itself, and that would not have run afoul of Apple's old terms. But virtually all games written using the UnrealEngine use the embedded (cross platform) scripting language, and that is what would have caused problems for UnrealEngine under the old terms.
Hmm... I don't know about "quite likely". Under the old rules, Apple could have easily let it through.
Perhaps you have never read the agreement. The original one was much harsher, but let's just take Apple's June attempt to relax them a bit, since they were the ones in effect until this announcement:
"Unless otherwise approved by Apple in writing, no interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s). Notwithstanding the foregoing, with Apple’s prior written consent, an Application may use embedded interpreted code in a limited way if such use is solely for providing minor features or functionality that are consistent with the intended and advertised purpose of the Application."
Note this agreement is not on the engine (UnrealEngine), but on the individual developer using the engine. Under the old rules, the developer would have to convince Apple their use of UnrealScript is "limited" and for "providing minor features or functionality." Minor features, like, you know, gameplay. And, under the old terms, Epic does not need a one-time certificate from Apple -- every developer using the engine would have to secure their own approval in writing in order to proceed with their application. That is a pretty hefty disincentive to use such an engine, and a silly policy for Apple to take.
As to your suggestion Apple could have let it through -- sure, they could have ignored their own stated agreement and made a special exception. It is Apple's store, their rules, and they have proven time and time again they are willing to be completely arbitrary in both their policies enforcement. In fact, THAT has been a large part of the problem.
Back to the point, whatever (Unreal/Unity/toolkits, developer outcry) caused Apple to change their mind, these changes are a good thing.
q: you changed your developer policies....so, when will adobe flash player finally come for the iphone?
a: as long the ftc and eu doesn't force us to....never!
Steve Jobs
sent from my iPhone
There's always wiggle room and exceptions. I never believed that Apple would reject games and apps that used certain scripting languages and engines to support app development. The SDK agreement was Apple sticking the finger to Adobe. Perhaps they had some onerous closed door negotiations about certain things, and they ended up playing it out in public.
@Shrike
I never believed Apple would ban Lua or Unity either, but the fact of the matter is Apple's policy, as written, demanded they do so. The simple fact that Apple habitually wrote (writes?) rules and then chooses to ignore or enforce them selectively, with no hint as to when they would do either, left most developers in the dark as to what they could not do. While this only drove a few developers away, it unquestionably built a ton of resentment. What you call "wiggle room and exceptions," a developer trying to earn a living calls "a ton of unnecessary cost and risk."
This is really good news for companies like appomator.com where people can create there own apps with a simple drag and drop interface. I recommend you check it out @
http://appomator.com//
A developer should be used to risk. Well, should accept the fact that business endeavors are risky. 90+% of their projects will fail.
I don't buy your statement about a ton of resentment. It just strikes me as wrong. They understood the playing field they were in. They knew the risks.
@Shrike
Developers are used to risk. Risk management is part and parcel of our business, really, of any business. But no business can properly manage risk if the partner/gatekeeper will not tell you the rules of the game until after you have spent your time and money. It is impossible. We can still ship, of course, but Apple has layered on top or normal business risk a blind-shot-in-the-dark element no business appreciates. If you do not think that breeds resentment for the gatekeeper among the bean counter side of developers, well, then you have never met one.
Similarly, veteran coders have earned with shipping products some knowledge of what tools work for what products. When Apple tells developers that a specific tool (e.g. Lua for game scripting) are banned for always producing inferior product, that flies in the face of hard-won experience. And if you do not think that breeds resentment for the gamekeepers among the coder side of developers, you have met scarce few of them, too.
Ultimately, it matters very little if you "buy" my statements or not. The important thing is, whether it was due to developer outcry, Adobe involving the DoJ, or the simple reality that many best-selling shipping games have been using "banned" techniques, Apple has bought it, and made some long overdue changes.
@(Copy Of) Dev
Well put
It is a good approach by apple. An ease for the users to use third party products on apple.
http://www.pakcolours.com/blog/apple-relaxed-the-application-development...
Why did you delete my comment? Nice censorship you have here.