Is Unity3d banned by new Apple SDK licence?

I appears that Unity3d is banned explicitly by the new iPhone OS4 license. See:

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).

Can Unity3d confirm this? It's a sad day.

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.

Update: here is our blogpost with our view on the situation so far:

Here's an official statement regarding this question by our CEO David.

UPDATE: Apple has taken back their stance on this topic, so Unity and the iPhone TOS is now no longer an issue. See this blogpost.

Apple has agreed to relax standards on iOS game development.

http://www.develop-online.net/news/35823/Apple-reverses-dev-tool-lockout

"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.

we believe we are fully compliant with these

I dearly hope so...but on what basis are you making this judgement?

Applications must be originally written in Objective-C, C, C++, or JavaScript

Seems depressingly clear.

The relationship between Apple and Unity3D has been resolved.

http://blogs.unity3d.com/2010/09/10/unity-and-ios/?mkt_tok=3RkMMJWWfF9wsRonuqjNZKXonjHpfsX67%2BsoT%2Frn28M3109ad%2BrmPBy%2B24sCWoEnZ9mMBAQZC810zgVMA7OR

I've written up 4 reasons to be optimistic on my blog: http://www.mindthecube.com/blog/2010/04/unity-iphone-versus-apples-developer-licensing-terms

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.

El Jobso Replies (via Engadget)

He doesn't say much... but it's something I suppose. Should we be worried?

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!)

This topic should be front and center of the Unity iPhone page.

To quote Hank Williams at http://whydoeseverythingsuck.com/2010/04/steve-jobs-has-just-gone-mad.html :

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.

I would not worry and here is the reason why:

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.

There seems to be a minor update to this brouhaha

http://www.appleoutsider.com/2010/06/10/hello-lua/

Specifically this old language in 3.3.2:

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.

i dont know but i think that they will ban it for iphones and other prouducts fro apple :frowning: