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.