2010-06-24 39 views
3

J'ai écrit une application POS, et maintenant je veux en créer différentes versions. Quelque chose comme une version de base, une version premium et une version complète. Donc, si un client paie plus, il obtient plus de fonctionnalités dans la même application. Est-il possible que je puisse garder une application standard, mais les fonctionnalités de mon application sont activées/désactivées en fonction de l'utilisateur clé de licence saisi. Restreindre les parties de code qui ne peuvent être exécutées que si une certaine touche a été entrée.Activer/désactiver l'accès au code via la clé de licence - Gestion des versions de l'application

Des idées gars ...

Répondre

3

Il y a plusieurs façons de le faire, tous les cassable si les gens qualifiés sont prêts à mettre le temps en elle ;-) Cependant, en fonction de la solution choisie, il Il faudra de plus en plus de travail de votre part, alors soyez réalistes et choisissez judicieusement.

Pour la clé de licence actuelle, je vous recommande fortement de la générer en utilisant un schéma de chiffrement à clé publique-privée standard tel que rsa. C'est-à-dire que vous créez une chaîne de texte de clé de licence qui contient le nom de l'utilisateur (afin que vous puissiez suivre les clés de licence partagées illégalement) et des informations sur le code qui devrait être actif. Cryptez la licence de votre côté en utilisant la clé privée et distribuez l'application avec la clé publique incluse. Lorsque l'application démarre, vous lisez la clé de licence et la déchiffrez à l'aide de la clé publique. Cela rendra pratiquement impossible la modification ou la génération de fausses clés. Maintenant, pour l'activation réelle du code, voici deux options que j'ai utilisées dans le code de production: soit inclure simplement des drapeaux dans la clé de licence indiquant quelles parties du code doivent être actives et l'activer avec des instructions basic if. Alternativement, en fonction de votre langage de programmation, vous pouvez charger dynamiquement des morceaux de code à partir de la clé de licence rendant ces parties du code inutilisables sans un fichier clé approprié (je l'ai fait en Java avec un chargeur de classe personnalisé). La dernière solution nécessite beaucoup plus de travail que la première, alors réfléchissez bien avant de commencer à concevoir votre solution.

+0

Même si le post est vraiment daté je cherche exactement ce genre de mise en œuvre. Avez-vous des exemples de Java pour Android? Merci beaucoup – Vale