First time here? You are looking at the most recent posts. You may also want to check out older archives or the tag cloud. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS. Thank you for visiting! (hide this)

xcode-icon-512x512 Do you remember when in April Apple changed the SDK license agreement in order to ban applications not natively written with Apple tools (like MonoTouch and Flash)?

The (old) clause was:

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

Today Apple announced that:

“… Based on their [our developers] 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.”

The new clause says (from the official PDF, the text in the agreement page is still the version from July):

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

As you see, the part about external libraries and other languages disappeared. This means that writing iOS applications with MonoTouch is now officially allowed, and probably also means that Flash applications will be allowed too.

The changes also allow scripting languages to run inside iOS applications, as long as the script comes as part of the application (and not downloaded from the web).

3.3.2 — An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and
not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework.

Now you have no more excuses not to start using MonoTouch to develop you applications. If you want to learn more about MonoTouch I suggest you to buy the Professional iPhone Programming with MonoTouch and .NET/C# book. Really a good one.

Now off to developing my iOS application with MonoTouch.

posted on Thursday, September 9, 2010 3:37 PM

Comments on this entry:

# re: Apple relaxing SDK license agreement: MonoTouch (and Flash?) officially allowed

Left by T.J. Barbour at 9/9/2010 6:49 PM

Woo hoo!

Horray for freedom to code in any language!

I sure wish I could do my dev. on a windows box (or even linux...) but oh well, just being able to use MonoTouch is a great step.

# re: Apple relaxing SDK license agreement: MonoTouch (and Flash?) officially allowed

Left by Joe at 9/10/2010 5:32 PM

Did you see any promise from Apple that it will allow developers to use MonoTouch? No? What's to stop Apple from banning MonoTouch tomorrow?

And that's just an example... Apple can, and already has on multiple occasions, ban applications for any reason whatsoever. Maybe in the future Apple will ban all games that depict war? Or any app with say a purple background? Heck, it could ban all third party apps tomorrow if it so desires.


If Apple ever releases a public statement that it officially supports installation of apps outside the AppStore and therefore beyond Apple's whims and taxes and regulations, then you can consider Iphone a usable platform.

As long as the Iphone platform is locked down by Apple, the platform should be banned by any self respecting developer. BTW jailbreak is not an answer unless it will be officially supported by Apple.

Comments have been closed on this topic.