Apple的最新授權條款及後續效應

隨著iPhone OS 4.0的Beta版SDK釋出,不少眼尖的開發者發現,在最新版的授權條文中,修正了原本的條款,明文規定所有的軟體必須透過Objective-C/C/C++,或者是JavaScript原生開發,這樣的改變無疑是對於近日才剛發表的Adobe Flash CS5以及其他第三方開發軟體的重大打擊。
評論
評論
隨著 iPhone OS 4.0 的 Beta 版 SDK 釋出,不少眼尖的開發者發現,在最新版的授權條文中,修正了原本的條款,明文規定所有的軟體必須透過 Objective-C/C/C++,或者是 JavaScript 原生開發,這樣的改變無疑是對於近日才剛發表的 Adobe Flash CS5 以及其他第三方開發軟體的重大打擊。

授權條款

誠如上面提到的,iPhone 開發者在近日下載 iPhone OS 4.0 的開發套件的同時,必須同意一份新的授權條款,這裡面包含了下面這一條:

3.3.1 -- 應用程式必須透過官方文件中記載的 API,遵循 Apple 的所規定的使用方式,並且不能使用、呼叫任何 Private API。應用程式必須原生撰寫於 Objective-C/C/C++或者是可以被 iPhone OS WebKit 引擎所執行的 JavaScript,並且只有用 Objective-C/C/C++的程式碼可以被編譯、連結到官方的 API。(例如:透過媒介轉譯或是中間層、工具來連結應用程式以及官方 API 是被禁止的

用白話文一點的方式說,透過 Objective-C/C/C++所撰寫的程式在這次的授權條款中,是不會受到影響的。但那些透過其他語言所撰寫而成的程式,則在這次的條款中被 Apple 所禁止。

第三方開發工具的現況

隨著 App Store 經濟圈的蓬勃發展,許多開發者也都紛紛的對於 iPhone 平台上的開發產生了興趣。然而,相對於以往主流的 Java/.Net 或是 PHP 環境而言,iPhone 的開發環境除了使用了大多數開發者陌生的 Objective-C 語言之外,整個 iPhone OS 平台架構也得從頭學起。而更讓人卻步的是,要開發 iPhone 應用軟體只能使用 Mac OS X 以及 Mac 電腦進行開發。

這樣的高進入門檻,使得許多開發者試圖想透過其他的方式來開發 iPhone 的應用程式。目前比較有名的有:

  • Titanium -- 使用 HTML/CSS/JavaScript 開發
  • Gamebit -- 使用 Scheme 語言開發
  • MonoTouch -- 使用 C#語言開發
  • Unity -- 視覺化的整合性開發環境

對於本來就熟悉網頁開發的開發者而言,他們自然會考慮使用 Titanium 的開發平台,而不是重新學習 iPhone 的整個開發架構,而其他語言的開發者也是一樣的狀況。

目前透過這些第三方開發環境所開發出來的軟體,約莫已經有數百套至上千套在 App Store 上面流通,其中也不乏許多知名且優秀的作品,特別是 Unity 這套環境原本便是許多遊戲開發者在開發跨平台遊戲的工具。

Adobe Flash CS5

而除了以上談到的開發環境之外,近日來最熱門的莫過於 Adobe Flash CS5 所提供的 iPhone 開發功能了。相比於前一段文章所提到的那些開發工具而言,Flash 的普及性以及現有的使用族群顯然是大上不少,許多 Flash 設計師或 ActionScript 的開發人員,都對於這項功能引頸期待。然而,就如同上面這些工具一般,Flash 的開發環境也是被新的授權條款所禁止的。

事實上,根據大多數人的猜測,條款的修改根本便是衝著 Adobe Flash CS5 而來。

Apple 的態度

Steve Jobs 在稍後也針對了這條條款進行了回應,他認為:

「這些介於開發者以及 iPhone 平台的中介的軟體層最終只會產生不標準的 iPhone 應用程式,並且會阻礙平台發展。」

這樣的說法,或許也可以視為 Apple 並不想讓任何第三者在 iPhone 平台上建立起自己的開發機制、甚至成為一種非官方的標準。

後續的發展

由於目前 iPhone OS 4.0 仍然在測試的階段,這些使用第三方開發工具的應用程式也因此還未受到最新的開發條款影響。

而根據授權條文的一些解釋空間,部份的開發環境,像是使用網頁標準的 Titanium,似乎也符合條款中使用 WebKit 引擎的規定。而 Unity 則是會產生完整的 XCode 專案,以及相對應的 Objective-C/C/C++程式碼,也應該符合這項條款。

至於像是 MonoTouch 或是 Flash CS5 這一類藉由中介層來執行的開發環境,它們的未來似乎註定將被 Apple 所排除於 App Store 外。

結論

這些開發工具的未來,顯然都掌握在 Apple 的手中。而對於這些開發工具的使用者來講,目前的心情也必定是五味雜陳。

這件事情再度提醒了眾多平台上的開發者:對於平台的規定、政策,必當要盡力遵守。畢竟,對於平台開發者而言,平台便是開發者的衣食父母,這點無論是 Facebook、iPhone 都是同樣的根本道理。