2012-09-13 6 views
4

Je crée un .framework (ou une bibliothèque statique) pour un composant que j'ai développé et que je souhaite vendre à des tiers.Vérification de "Release Build" à l'exécution

Je prévoyais d'ajouter du code pour protéger le cadre de la réutilisation, de la redistribution ou de la revente non autorisée.

Je pense qu'un bon moyen d'y parvenir serait de demander à l'acheteur de me dire quel est l'identifiant de l'application qui utilisera le framework, de l'enregistrer dans le framework en tant que propriété NSString et de créer une méthode vérifie à l'exécution si l'ID de l'application qui utilise le framework correspond ou non.

Cependant, je voudrais également rendre le cadre disponible pour essayer gratuitement. Par conséquent, je souhaite activer la vérification de l'ID de regroupement uniquement lorsque l'application contenant est compilée en mode publié ou lorsque l'application s'exécute sur le périphérique de l'utilisateur final, en dehors du sandbox de développement.

Bien sûr, je ne peux utiliser aucune méthode qui repose sur des variables ou des macros définies dans le fichier de projet, car elles seraient trop faciles à exploiter. Je dois le faire à l'exécution ... et sans aucune action requise par l'acheteur.

Existe-t-il un moyen de vérifier au moment de l'exécution si une application est en cours d'exécution dans le sandbox développeur ou non? Ou si une application a été créée avec le profil de construction de la version?

Merci!

+0

duplication possible de [Détecter si l'application iOS est exécutée dans le débogueur] (http://stackoverflow.com/questions/4744826/detecting-if-ios-app-is-run-in-debugger) –

+0

Je l'ai vérifié et il ne donne pas une solution valide au problème ... – Andrea

+0

@BlackFrog J'ai trouvé cette réponse: (http://stackoverflow.com/questions/3426467/how-to-determine-at-run-time-if-app -is-for-development-app-store-ou-ad-hoc-dist) qui pourrait fonctionner ... Je vérifie sa validité. – Andrea

Répondre

1

Dans le passé, j'ai mis en œuvre une simple expiration de bombe à retardement en temps libre pour évaluer mais pas libre de déployer des composants. La bibliothèque fonctionnerait jusqu'à une certaine date X, puis cesserait de fonctionner. L'utilisateur devra simplement télécharger de nouveau les derniers bits pour continuer à évaluer. Une commande payée, un lien de téléchargement est fourni sans la bombe à retardement ou un fichier de licence avec une licence signée numériquement désactivé la logique de bombe à retardement tous ensemble. S'appuyer sur les caractéristiques environnementales d'exécution est au mieux fragile.

+0

Salut Daniel, merci pour votre contribution. Cependant, votre solution n'empêche pas les utilisateurs ayant obtenu une version «déverrouillée» de réutiliser, revendre ou redistribuer votre composant ... – Andrea

+0

Cela atténue dans une certaine mesure si vous exploitez le concept de fichier de licence signé. Il n'existe pas de système de licence infaillible. De plus, les copies divulguées pourraient effectivement vous donner plus de ventes en agissant comme un outil de marketing ... comme MS Office/Windows piraté pour MS. –

+0

Daniel, pouvez-vous me diriger vers une documentation ou une ressource en ligne qui explique comment implémenter le concept de fichier de licence signé? – Andrea

Questions connexes