2009-02-18 66 views
13

雖然我明白,爲了iPhone應用程序被App Store接受,一個要求是隻使用記錄的庫。自定義iPhone攝像頭控件(不使用UIImagePickerController)

如果是這種情況,某些應用程序(如「Night Camera」和「Camera Plus」)如何使用攝像頭控件,它似乎不是UIImagePickerController中包含的攝像頭控件?

我聽說過某些情況下,開發人員可以「特殊」地訪問某些標題,這些標題允許如果僅限於使用記錄的庫,否則將無法實現這些功能。但是,鑑於應用程序選擇過程對於App Store來說有多不透明,我寧願堅持所推薦的內容,而不願意抓住機會。

任何人都在意擺脫這一點更多的光?

回答

6

您可能想要查看Apple的私有框架標頭的classdump。運行這個perl腳本:

http://arstechnica.com/apple/news/2008/11/dumping-the-iphone-2-2-frameworks.ars

下PrivateFrameworks導航到PhotoLibrary目錄。這裏的一些課程對於直接攝像機訪問看起來很有前途。

使用未公開的API可能會損害您通過應用商店的機會,但這都是非常主觀的 - 如果您的產品很好,蘋果可能會讓它滑過。我建議與蘋果公司的開發者傳道人交朋友。

+0

感謝框架轉儲鏈接。爲了教育目的,我將運行該腳本,但現在將堅持使用記錄的類。 – 2009-02-18 18:48:25

+0

當然。讓我知道,如果你想出一個解決方案,絕對不違反蘋果的條款 – 2009-02-18 19:27:25

1

UIImagePickerController是管理視圖層次結構的UIViewController子類。您可以隨意使用視圖層次結構,因爲這些應用程序是,但考慮到Apple沒有記錄它並可以在任何操作系統更新中更改它,這是有風險的。

我還沒有聽說有人給予圖書館的特殊訪問權限,但我已經讀過,沒有記錄的類和方法與私有框架之間存在細微的區別。未記錄類是一個灰色地帶,但私人框架是絕對不允許的。

0

簡單的解釋是,商店中的應用程序不應該使用不受支持的API,但是這不會被一致檢查。您提到的應用程序要麼使用不受支持的函數/類/方法,要麼正在使用視圖層次結構 - 雖然可以使用標準API完成,但本身沒有記錄。

你可以做他們做的事,並抓住機會。請注意風險。您的應用程序可能會(a)被拒絕從商店,(b)被接受但後來啓動(這發生在不受支持的API使用),(c)被接受並且未啓動,但在下一次Apple進行新的iPhone軟件更新時中斷(因爲不支持的API或視圖層次結構可以在沒有警告的情況下更改)。或者你可能會很幸運,並沒有發生這種情況。