The iPhone developer community has been aflutter since Apple’s release of the latest version of its iPhone Developer Program License Agreement (DPLA). The DPLA is the primary agreement between Apple and those who develop software for the iPhone OS platform. It covers most of the relevant restrictions on what can and can’t be included in an iPhone app. I’ve covered some of the highlights of an earlier version of this agreement in my iPhone Developer’s Legal Guide.
In the latest version of the DPLA, released on April 8, 2010, Apple made a curious and controversial change to the agreement. First noted by Daring Fireball, the controversial change to the DPLA had to do with a clause of the agreement that restricted how developers could utilize standard APIs provided by the iPhone OS. In particular, the old version of the agreement read:
3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
…while the latest (April 8, 2010) version of the agreement reads:
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).
For the uninitiated