Titanium Community Questions & Answer Archive

We felt that 6+ years of knowledge should not die so this is the Titanium Community Questions & Answer Archive

End of Titanium Appcelerator for iPhone OS ? New rule in Apple licence

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

Does that mean its no longer possible to use Titanium?

— asked April 8th 2010 by Evgeni Makarov
  • iphone
  • licence
0 Comments

14 Answers

  • From Jeff Haynie's blog:
    "Titanium takes your Javascript Titanium API code usage and builds what we call an inverse symbol dependency matrix. Simply put it allows us to resolve all the APIs being used into a set of native symbols (slightly different between platforms, but in iPhone this is a object file). These symbols boil down to compile code that only matches the code your application needs and only those dependencies that you’re using in your application. Once we do this, we generate a bunch of Objective-C code from your code, take those symbols and then shove them into GCC to have him produce the final native application — as if you could have hand written the Objective-C code yourself… But highly optimized. Got it?"

    I'm no genius (or lawyer) but it seems to me that the compiled code from a Titanium project is Obj-C.

    — answered April 8th 2010 by karlo kilayko
    permalink
    0 Comments
  • My understanding is that Titanium is no longer using webkit as it had in the past.

    — answered April 8th 2010 by Ryan Huff
    permalink
    0 Comments
  • I just posted a brief update.

    We're trying to get more clarification now.

    — answered April 8th 2010 by Jeff Haynie
    permalink
    0 Comments
  • I hope Appcelerator has already talked to Apple about this item. I think we're OK though, right? We're writing in Javascript executed by the WebKit engine, no?

    — answered April 8th 2010 by Greg Pierce
    permalink
    0 Comments
  • I guess the key phrase is: "Applications must be originally written in Objective-C, C, C++…" So technically, Titanium may not follow the law. But then again, what does originally really mean? Would using a code generator violate this?

    I seriously doubt this is going to be a problem for Titanium.

    — answered April 8th 2010 by Mark Burggraf
    permalink
    0 Comments
  • >to Karlo Kilayko
    Doesn't it "intermediary translation" ?

    — answered April 8th 2010 by Evgeni Makarov
    permalink
    0 Comments
  • for those interested, this is the corresponding part of the agreement in the "old" sdk 3.2:

    3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
    3.3.2 An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple's Documented APIs and built-in interpreter(s).

    for me it seems that this was changed on purpose …

    — answered April 8th 2010 by Christian Sigl
    permalink
    0 Comments
  • Does anyone know when this new agreement appeared?

    — answered April 8th 2010 by Mark Burggraf
    permalink
    0 Comments
  • today, it has to be confirmed before being able to reach the os4 beta section

    also kwhinnery on irc just told me, that they are looking through the agreement on the moment

    — answered April 8th 2010 by Christian Sigl
    permalink
    0 Comments
  • I think this is more aimed at Adobe and apps built with CS5. I hope this does not affect Titanium.

    — answered April 8th 2010 by Clint Tredway
    permalink
    0 Comments
  • Clint, is seems that Adobe uses the similar scheme as Titanium, aren't they? But instead of JS they use AS…

    — answered April 8th 2010 by Evgeni Makarov
    permalink
    0 Comments
  • As I understand Titanium, it bridges JavaScript directly to Apple APIs… circumventing the WebKit engine. So this is a nogo according to latest Apple directives.

    It's a real shame that Apple excludes developers who are coding/wanting to code in JavaScript - and at purpose not care wether WebKit or a direct bridge is involved executing their code. Stability/Quality issues are the same compared to coding in C/C++/ObjectiveC.

    Maybe they do not have the infrastructure to handle the amount of apps which would be submitted if technologies like Titanium/PhoneGap etc. were allowed.

    — answered April 8th 2010 by Marc Mielke
    permalink
    0 Comments
  • As I understand Titanium, it bridges JavaScript directly to Apple APIs… circumventing the WebKit engine. So this is a nogo according to latest Apple directives.

    It's a real shame that Apple excludes developers who are coding/wanting to code in JavaScript - and at purpose not care wether WebKit or a direct bridge is involved executing their code. Stability/Quality issues are the same compared to coding in C/C++/ObjectiveC.

    Maybe they do not have the infrastructure to handle the amount of apps which would be submitted if technologies like Titanium/PhoneGap etc. were allowed.

    — answered April 8th 2010 by Marc Mielke
    permalink
    0 Comments
  • Finally, should we or not use Titanium for iPhone ?

    — answered April 27th 2010 by Armindo Da Silva
    permalink
    0 Comments
The ownership of individual contributions to this community generated content is retained by the authors of their contributions.
All trademarks remain the property of the respective owner.