2013-04-09 96 views
5

我知道你不能從iOS捆綁包中刪除一個項目,因爲它是有簽名的,但是有沒有辦法包含一個文件並且它不是「已簽名」捆綁包的一部分,但是仍然存在安裝?安裝後從捆綁軟件中刪除文件

用例基本上是安裝應用程序,讀取文件的內容,存儲在鑰匙串中,然後刪除文件。

感謝您的任何幫助和指導。

注意 - >應用程序無法訪問互聯網來獲取此文件。 能夠在閱讀一次後刪除文件(或擦除文件的內容)是我真正需要的。另外,我們在這裏進行臨時分發,我們沒有通過任何應用審批流程。

+2

不要以爲你可以從包中刪除一個文件......你有沒有考慮爲你的應用程序設置某種服務器來檢索文件的內容? – rocky 2013-04-09 18:11:23

+1

應用程序包對設備上的應用程序是隻讀的。所以你不能從你的包中刪除一個文件,無論是簽名還是未簽名。 – 2013-04-09 18:13:43

+0

不幸的是,由於「商業限制」,我們無法遠程獲取文件,這是一個廢話的藉口,但我唯一的答案。和@MartinR好點。沒有真正考慮這一部分。我猜,有沒有辦法用文件預先填充文檔文件夾? – Breland 2013-04-09 18:18:57

回答

5

簡短的回答是否。應用程序包是隻讀的。

正如其他人所指出的那樣,在需要可編輯的包中傳遞數據的常用解決方案是將數據從應用程序包複製到文檔(或其他應用程序文件夾),以便您擁有可編輯的副本。但是,您仍然無法從軟件包中刪除任何內容。

由於您的項目有限制,您無法通過Internet傳輸數據,並且您通過Ad-Hoc分發交付應用程序,所以您的主要擔心是交付的文件無法訪問,即使在監獄破碎的設備。

由於您無法刪除文件以使其無法讀取,因此您的下一個最佳選擇是對文件進行加密以使其無法讀取。您的應用可以解密內容,使用它並處理解密後的版本。當然,這仍然不是防彈的,因爲解密需要一個你必須保護的密鑰,但是它要像你要得到的那樣是防彈的。

+0

到目前爲止,最好的解決方案,那麼,我猜,最好的方法是「安全地」獲得設備的密鑰? – Breland 2013-04-09 18:55:25

+2

導出密鑰,就像使用應用程序中某個文件的CRC-32校驗和一樣,使用其他值進行哈希處理,所以密鑰不會存儲在編譯後的代碼中,相反,它們必須通過程序,看看你是如何得到的關鍵。您可以通過考慮時間來限制其時間,但是您需要添加用戶設備時間必須準確的要求。 – 2013-04-09 19:04:18

相關問題