2011-06-30 67 views
4

我正在開發一款AIR應用程序,該應用程序將具有免費的基本版本以及使用許可證密鑰解鎖的更高級付費版本。理想情況下,一旦輸入許可證密鑰,我希望它爲計算機的所有用戶解鎖應用程序。Adob​​e AIR全系統存儲空間

但是,我一直無法找到合適的系統範圍的存儲許可證密鑰文件的位置。 File類中的所有預配置位置(例如File.applicationStorageDirectory)都是用戶特定的或只讀的。

在AIR中有標準的系統位置,我可以存儲這樣的東西嗎?如果不是文件系統,可能是共享對象,或SQLite,或加密的本地存儲?如果沒有,那麼每個系統(Windows,Mac,Linux)上的標準位置是否可以硬編碼,確保所有用戶均可寫入?由於無法訪問任何環境變量,最後一個選項變得更加困難。

如果一切都失敗我想我可以只是要求應用程序解鎖每個用戶,但這聽起來不像一個滿意的客戶的食譜(「你是什麼意思我得爲我的妻子買兩次使用它?我們只有一臺電腦!「)。 (好吧,是的,它是每個用戶我可能會讓一個密鑰解鎖應用程序3次或4次以使其更好),但用戶多次激活仍然不太方便。

回答

1

您可以使用文字的路徑,可能是系統範圍和可寫的選擇自己的位置,例如:

//windows: 
new File("C:\whatever ..."); 

//mac: 
new File("/System/whatever ..."); 

可用的目錄中flash.fileSystem.File(IE:File.desktopDirectory)是開發商的便利,因爲這些目錄很常見在每個系統上使用和不同,但不限於使用它們。

但是,您將必須知道這些目錄並將其硬編碼到您的代碼中,這可能很危險,因爲這些目錄可能不存在於用戶計算機上,或者它們可能需要管理權限才能寫入這些目錄等。

我建議您只需將每個安裝應用程序的密鑰存儲在File.applicationStorageDirectory中,但可能包含用戶限制的每個已購買密鑰的書面許可證。

與許可密鑰這些天你的目標只能是保持誠實的客戶誠實,而不是挫敗黑客的努力。對於ActionScript 3.0/AIR尤其如此,因爲代碼將被公開(除非您使用像SecureSWF這樣的混淆器)

如果您想簡化銷售應用程序的過程,那麼還有Adobe InMarket

出於好奇,你在做什麼,如果你不介意闡述。