2011-08-25 129 views
2

我想知道Mac應用商店有什麼限制。有人能指引我朝着正確的方向嗎?例如,假設我想編寫一個在Mac文件系統上執行文件增量自動備份的應用程序,Mac應用程序商店中的應用程序可以這樣做,還是我唯一的選擇是獨立的Mac應用程序?Mac應用可以存儲應用程序訪問本地文件系統嗎?

在iPhone上,應用程序自身包含在自己的「沙箱」中?這個相同的主體是否適用於Mac應用商店應用?

+0

不知道你的問題是什麼。是的,應用程序可以從磁盤讀取/寫入。是的,他們有各種沙盒,即。沒有管理員權限,您無法刪除文件系統。這與自動備份有什麼關係? – David

回答

3

我相信,從11月開始,Mac App Store的參賽作品必須採用應用程序沙箱。當您的應用程序提交給應用程序商店時,您可以請求特定的權利,並說明您需要這些權利的原因。更多信息可以在開發者網站的WWDC Session 204視頻中找到。

+1

2012年3月1日,蘋果將需要沙箱。 – bdunagan

+0

沙箱需求延長至2012年6月1日 – Khomsan

0

您目前可以在Mac App Store上找到Hype或Pixelmator。

這明顯證明您可以保存到磁盤並從磁盤讀取,這似乎是任何嚴重應用程序的基本功能。此外,蘋果正在推動開發人員開始使用文件的增量自動備份,因此,如果他們禁止在App Store中使用它,那將是非常令人吃驚的,不是嗎?

1

Lion的版本正在改變或改變。 Mac Store應用程序曾經能夠在文件系統中執行登錄用戶權限允許的任何操作,但我認爲您現在需要使用授權系統,因此需要對您的應用程序進行沙盒處理。

閱讀更多的想法

https://developer.apple.com/library/mac/#releasenotes/General/SubmittingToMacAppStore/_index.html#//apple_ref/doc/uid/TP40010572

+0

我不明白他的問題是「我想做一臺Time Machine」,但是「我想做一個可以讀/保存任何文件的應用程序,甚至可以創建另一個應用程序」。 – Kheldar

8

研究員,什麼OP真的是指這裏描述:

http://developer.apple.com/library/mac/#documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html

這是所有關於

  • 集裝箱
  • 應享權利
  • PowerBox(守護進程)

一旦應用程序被「沙箱化」,它的〜「home」目錄的視圖就是Container的視圖(剛剛在$ HOME/Library/Containers/appBundleID/Data中啓動時創建)。其中它發現它的配置,緩存和數據文件的「私人副本」。除非...

...您以合適的屬性文件的形式爲應用程序提供適當的權利(實際上,codesigning是沙箱的組成部分概念)。

其中一個權利是「com.apple.security.files.user-selected」。讀寫「這允許應用程序讀取和寫入這些人恰恰是對用戶有明確通過標準選擇的文件保存並分別打開的對話框。

的PowerBox(pboxd)守護程序然後呈現相應的文件對話框中它自己的進程空間並將選定的文件路徑添加到允許的文件列表中,這對應用程序是透明的,即不需要更改代碼 - 只要應用程序使用標準的NSOpenPanel或NSSavePanel對話框即可

「爲了簡化應用程序沙盒,Mac OS X v10.7提供了一個受信任的系統守護進程,負責代表應用程序中運行的應用程序提供打開和保存面板提示沙箱。該守護進程稱爲Powerbox(其進程名稱爲pboxd)。在用戶體驗方面,這些Powerbox提供的遠程面板與進程中面板完全沒有區別。

任何時候沙盒內運行的應用程序都會調用NSOpenPanel或NSSavePanel對話框,而不是直接顯示面板,AppKit會自動要求Powerbox顯示對話框。從開發人員的角度來看,這些面板的使用方式不需要更改代碼; 。這個過程是完全透明的「[從蘋果文檔最終報價]

鑑於這一切,的OP需要什麼(對於備份解決方案)是‘無中介的讀/寫’

」如果應用程序選擇以繞過Cocoa API的方式派生用戶的主目錄(例如,通過直接調用getpwent),應用程序沙箱禁止它寫入其接收的路徑(除非應用程序具有非中介寫權利,這是強烈的因爲明顯的安全原因而不鼓勵。「[蘋果文檔結束引用]

然而,最接近的權利,將gi我已經可以罰款將是「文件系統免費獲取」:

  • 絕對文件只讀 -The在指定的絕對路徑讀取文件或目錄的能力。 (com.apple.security.temporary-exception.files.absolute-path.read只

  • 絕對文件的讀/寫 -The讀或寫在指定的絕對的文件或目錄的能力路徑。 (com.apple.security.temporary-exception.files.absolute-path.read寫

「[從蘋果文檔最終報價]

而且我不知道是否申請可以簡單地提供根目錄「/」

反正仔細注意,這些權利被標記爲「臨時」:蘋果公司可能會刪除/在看到合適棄用這些權利

相關問題