It seems, as others have pointed out, that a big motivator for this change was to prevent, or at least slow down, cross-platform app development.
However a loophole exists: if right now you code in Generic Intermediate Language A which translates to an iPhone project in ObjC as well as an Android app project, there is nothing Apple can do (right now(1)) to stop someone writing a program which translates an iPhone project directly to a project for another platform like Android.
1) They can obfuscate the project data to make it harder/impossible to parse via some security mechanism, but this leads to a ridiculous arms race.
However a loophole exists: if right now you code in Generic Intermediate Language A which translates to an iPhone project in ObjC as well as an Android app project, there is nothing Apple can do (right now(1)) to stop someone writing a program which translates an iPhone project directly to a project for another platform like Android.
1) They can obfuscate the project data to make it harder/impossible to parse via some security mechanism, but this leads to a ridiculous arms race.