Apple的最新授權條款及後續效應
隨著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的開發平台,而不是重新學習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都是同樣的根本道理。


Pingback: Adobe的反擊!Adobe宣佈放棄iPhone平台的相關開發 - Inside
Pingback: Adobe與Apple的後續發展 - Inside