2015-06-25 52 views
1

我編寫了一個沙盒應用程序,用於處理優勝美地(10.10)下的USB驅動器。 當應用程序完成它的東西我想提供給用戶一個選項彈出設備。在沙盒小牛應用程序中卸載USB設備

在優山美地,那不是一個問題,我成功地使用

DADiskUnmount() 

[NSWorkspace unmountAndEjectDeviceAtURL:error:] 

但在小牛隊(10.9)都methodes將無法正常工作。 我仔細檢查了我的整個代碼,我非常確信沒有SDK衝突。

我得到

Sandbox denied authorizing right 'system.volume.external.unmount' by client <MyApp> 

我得到了所有USB相關的權利,使用安全範圍的書籤(與startAccessingSecurityScopedResource和無),在試驗裝置上修復磁盤權限,使用不同種類的USB設備的以下錯誤消息測試,檢查設備上是否有打開的文件並嘗試kDADiskUnmountOptionForce。

system.volume.external.(adopt|encode|mount|rename|unmount) 

確認權只出現在10.8和10.9。來源:link

有沒有辦法讓我的應用程序這個權利?

這將是很好,如果有人可以幫助我這個!

回答

0

光圈使用沙箱"big red button"com.apple.security.temporary-exception.sbpl)做system.volume.external.mount/unmount

Aperture's entitlements file

<key>com.apple.security.temporary-exception.sbpl</key> <string> (begin (allow authorization-right-obtain (right-name "system.volume.external.mount")) (allow authorization-right-obtain (right-name "system.volume.external.unmount")) (deny network-outbound (with no-log) (regex #"^/private/tmp/launch-")) (allow file-ioctl (literal "/dev/ptmx") (literal "/dev/null") (literal "/dev/tty") (regex #"^/dev/ttys")) (allow file-search) (allow ipc-posix-sem) (allow system-fsctl)) </string>

不知道蘋果是否會允許這樣的MAS雖然。

+0

嘿!現在我想把這個提交給MAS ...你能解釋每一行還是給我一個鏈接到一個資源,我可以讀取這些信息?我想正確地解釋爲什麼我在我的權利文件中寫這個,所以它可能會被接受。 – phisto05

+0

嗯,我想只是說實話,它是在Aperture的權利文件中,如果沒有它,彈出在小牛下無法使用。你有沒有嘗試刪除一些其他的行?就像離開「允許授權 - 獲取」行來卸載並查看它是否有效?他們可能更容易以較少的允許來批准它。 –

+0

它工作時,我只是離開允許權限獲得(右鍵「system.volume.external.unmount)...現在我正在等待審查:) – phisto05