3.3.1 Applications may only use Documented APIs in the manner
prescribed by Apple and must not use
or call any private APIs. Applications
must be originally written in
Objective-C, C, C++, or JavaScript as
executed by the iPhone OS WebKit
engine, and only code written in C,
C++, and Objective-C may compile and
directly link against the Documented
APIs (e.g., Applications that link to
Documented APIs through an
intermediary translation or
compatibility layer or tool are
prohibited).
We just heard about the iPhone OS4.0 and the new Terms-Of-Service. While we believe we are fully compliant with these we are right now doing all we can to get this verified by Apple. As soon as we know precisely, we will of course share that info with everybody. Please hang tight while we get this sussed out.
"The mobile devices giant says it is 'relaxing all restrictions on the development tools used to create iOS apps' on the proviso that the resulting apps do not download any additional code."
This is also going to open the way for flash developers as well.
Guys don't worry. Unity compiles all the code down through Objective-C or straight C/C++ before it gets deployed, so even though you write your game in C#, the code is still compiled as Apple-approved C code. ;) This won't present any problems at all, and you shouldn't worry.
If Apple puts up a fight about this, it'll be bull* * * *, but I'm not worrying at all.
Short summary: The language as written is very broad and impacts too many developers & publishers for Apple's own good. It is also difficult to enforce for games in particular. I firmly believe Apple will clarify it with a fairly narrow interpretation, or even revise it, but it might take a while to get the answer we want. In the meantime, take heart that: 1) Unity games are highly portable, and 2) Unity Technologies is very smart and will be doing their utmost to have a version of Unity iPhone that satisfies Apple's requirements.
If this does mean that Unity can no longer be used to develop for the iPhone, I hope the Unity Team continues to make improvements for other platforms. Even without iPhone/iPad, Unity remains by FAR the fastest and easiest way to develop games for PC/Mac (and hopefully soon all consoles!)
The key is where they say "Applications must be originally written in Objective-C, C, C++."
Take a pause and think about what that "originally" really means.
Developers are not free to use any tools to help them. If there is some tool that converts some Pascal or, Ruby, or Java into Objective-C it is out of bounds, because then the code is not "originally" written in C.
That's pretty clear, people. Without further clarification, Unity is out.
I was just about to resume working on my Unity iPhone app, and will now postpone that work until this is resolved one way or another.
Steve Job's loves Unity and the Games that have made his platform THE platform.
That's the easy version.
The real reason why I would not worry is as follows:
FLASH specifically CS5 which creates an application that can run on the iPhone does so using an Adobe API to create the file and never touches xCode.
Unity compiles in xCode.
Even if it is c# it compiles out into objective-c and it would not be hard for Unity to make a converter if needed.
Steve Jobs shows off Tapulous in the OS4 Announcement. This was written in LUA. He is not into people profiting off of his work without adopting the platform and rightfully so. Adobe is trying to bypass Apple and Steve also does not want a bunch of crappy web applications - he wants creative imaginative people and companies that want to work with him.
Unity will be safe no worries. If I am right you can buy me a beer.
If I am wrong I will buy you a beer.
No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apples Documented APIs and built-in interpreter(s).
Is now this:
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 Apples Documented APIs and built-in interpreter(s). Notwithstanding the foregoing, with Apples 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.