Общесистемное хранилище Adobe AIR - PullRequest
4 голосов
/ 30 июня 2011

Я работаю над приложением AIR, которое будет иметь бесплатную базовую версию и более продвинутую платную версию, разблокированную с помощью лицензионного ключа. В идеале, после того, как лицензионный ключ введен, я бы хотел разблокировать приложение для всех пользователей компьютера.

Однако мне не удалось найти подходящее общесистемное расположение для хранения файла лицензионного ключа. Все предварительно сконфигурированные местоположения в классе File (например, File.applicationStorageDirectory) зависят от пользователя или доступны только для чтения.

Существует ли стандартное общесистемное местоположение в AIR, где я могу хранить такие вещи? Если не файловая система, может быть общие объекты, или SQLite, или зашифрованное локальное хранилище? В противном случае, существуют ли стандартные места в каждой системе (Windows, Mac, Linux), которые я мог бы жестко закодировать, которые гарантированно доступны для записи всем пользователям? Последний вариант усложняется отсутствием доступа к каким-либо переменным среды.

Если ничего не помогло, думаю, я мог бы просто потребовать, чтобы приложение было разблокировано для каждого пользователя, но это не похоже на рецепт для счастливых клиентов («Что вы имеете в виду, я должен купить его дважды, чтобы моя жена могла использовать его? У нас только один компьютер! ").

(Ладно, да, если это для каждого пользователя, я, вероятно, позволю одной клавише разблокировать приложение 3 или 4 раза, чтобы быть уверенным в этом, но для пользователя все еще менее удобно активировать несколько раз).

1 Ответ

1 голос
/ 30 июня 2011

вы можете выбрать свое собственное местоположение, используя буквенные пути, которые могут быть общесистемными и доступными для записи, например:

//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 если вы хотите упростить процесс продажи вашего приложения.

из любопытства, над чем вы работаете, если вы не против разработки.

...