According to this post on Daring Fireball a new iPhone SDK Agreement release in conjunction with the iPhone OS 4.0 announcement today specifically bans any iPhone application not implemented in C, C++ Objective-C or JavaScript. The clear impact here is to the wide array of programs written in languages other than those.
Is that your reading of the clause in the new agreement as well?
Update: Here is the clause as printed on Daring Fireball:
3.3.1 — Applications may only use Documen开发者_StackOverflowted 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).
This has been causing friction between apple and developers since they first opened up cocoa touch.
There was the Commodore 64 issue: http://gizmodo.com/5354422/commodore-64-iphone-app-approved-removed
The c-64 emulator allowed access to the basic CLI and was removed by apple.
There was also a lot of discussion on the Lua list: http://lua-users.org/lists/lua-l/2009-10/msg00015.html
Lua can be built on the iPhone arm processor from the c source so is this considered c or Lua?
Some applications using Lua have been accepted: http://tuomaspelkonen.com/2010/03/why-lua-truly-rocks/
Unity uses scripting languages as a part of its API and many Unity games have been accepted: http://unity3d.com/gallery/game-list/
...including Zombieville which "was recognized in Apple's iTunes Rewind 2009 as one of the top-selling games of the year".
I can't see them removing all of these games at this point.
What people have been most frustrated with is that there does not seem to be a single standard for what is accepted and what is not. Do big players like Adobe and Unity get special privileges to use scripting which smaller groups do not?
Apple has had a ban on interpreted languages on the iPhone for a while now, but yes, I suppose this makes the ban more clear and more precise. I imagine that yes, Apple is saying that if you use a language other than C, C++, Objective-C, or JavaScript, you run the risk of having your app rejected from the App Store on those grounds.
Yep it sure looks that way to me too. My guess is that it was written to stop the whole Adobe CS5 Flash to iPhone app export thing. Kinda sucks for Adobe if that is true since Adobe is releasing CS5 in a few days.
There is also the option of C# with MonoTouch. I believe that it allows you to use any language that emits valid CLI bytecode, but don't quote me on that.
http://monotouch.net/
It seems so. Apple just lost a fanboy.
A policy against transpilers and interpreters was in effect from April 2010 through September 2010. It is no longer in effect, though bans on hot-patching and third-party JIT engines remain in effect. From "Apple relaxing SDK license agreement: MonoTouch (and Flash?) officially allowed":
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.
Sadly, yes. That is my reading as well.
精彩评论