J'ai créé une bibliothèque statique dans iPhone SDK et je suis inquiet que si je fournis du code à toute personne dans laquelle la bibliothèque statique est utilisée, alors tout le monde peut utiliser une bibliothèque statique. Alors, y a-t-il un moyen de les restreindre en utilisant la bibliothèque jusqu'à ce qu'ils obtiennent une licence? Je suis nouveau pour licencier toute bibliothèque. P>
5 Réponses :
Si vous fournissez la bibliothèque statique, personne ne peut récupérer le code. P>
Avez-vous des réservations dans d'autres personnes en utilisant votre bibliothèque statique aussi? P>
Oui, si quelqu'un peut copier une bibliothèque statique et accéder à ma bibliothèque statique, je ne le souhaite pas.
Il s'agit d'un problème que vous devez résoudre par des moyens légaux, et non par une solution technique. P>
Assurez-vous de donner uniquement à la bibliothèque aux personnes en qui vous avez confiance et si nécessaire, signez-leur un accord de ne pas la diffuser. P>
Demandez également-vous si cela vaut la peine. Votre code est-il si unique qu'ils ne peuvent pas le trouver ailleurs, ni dupliquer eux-mêmes dans quelques jours, en utilisant Google et Stackoverflow seul? P>
C'est la seule vraie réponse. Même les gros gars (MS, Adobe, etc.) ont du mal à garder les pirates de la distribution de leurs logiciels. Le court de choses est qu'une fois publié, vous avez un contrôle exactement zéro. Ce qui signifie que votre seule véritable protection est via le système juridique.
@PEYLOW Votre conseil est vraiment authentique et bon, mais il demande à une licence de la bibliothèque. Signifie qu'il y a un moyen de faire une licence la bibliothèque?
@Amit - La licence n'est pas difficile, mais un travail légal. Écrivez un contrat de licence, de préférence un avocat vous écrirez pour vous. Demandez à le client le signer, puis envoyez-leur la bibliothèque. S'ils violent l'accord signé résolvent la question devant le tribunal si nécessaire. À la fin de la journée, cela ne fonctionne que si vous ajoutez l'ingrédient magique; Trust i>.
comme dit par @Péylow, p>
Ceci est un problème que vous devez résoudre par legal signifie, pas par une solution technique. P> blockQuote>
mais strong> Il existe des moyens simples de "bloquer le code": vous pouvez créer une archive RAR ou ZIP, crypté avec le mot de passe, et après leur certificat, vous pouvez leur dire le mot de passe. < / p>
Merci, mais après leur avoir donné mot de passe, ils peuvent distribuer à n'importe qui, non?
Oui. Ensuite, vous devriez les faire signer un accord ou quelque chose.
Hmmmm, c'est une bonne idée, mais peut-il être comme, même si je fournis une bibliothèque statique, et comme ils courent sur un autre PC, il ne réagira pas. Je voulais dire, puis-je mettre la restriction que, la bibliothèque statique peut pouvoir fonctionner uniquement sur un PC spécifique jusqu'à ce que je ne leur donne pas de licence?
Vous pouvez faire des restrictions UUID mais je ne sais pas si cela fonctionnera sur des simulateurs.
Non, je ne regarde pas les restrictions de l'appareil, je suis juste en train de regarder les restrictions de niveau de PC, comme si quelqu'un dirige ma bibliothèque sur son Mac OS, cela leur donne une erreur, mais quand j'exécute ma bibliothèque sur mon Mac OS, je peut pouvoir fonctionner sans entrave. La restriction de l'appareil n'est pas une solution pour ne pas utiliser le code.
Je conviens que fondamentalement, cela doit être fait en légalité. Mais si vous souhaitez simplement fournir une version de démonstration avant NDA, envisagez de filmer un certain message sur la surface graphique principale de l'application à l'aide de la bibliothèque.
Si vous souhaitez "lier" la licence à un "ordinateur du développeur", vous avez simplement besoin de quelque chose que vous pouvez lier. Par exemple, cela peut être l'UDID de l'émulateur. p>
Vous pouvez générer une licence pour l'UDID d'émulateur et ne limiter que le développement de l'émulateur, tout en permettant un accès sans restriction pour le code de bras (sur le périphérique) p>
À des fins de développement, tout le monde a besoin d'émulateur, je suppose que cela vous limite que cela vous suffit. p>
S'il expédie le code, il est facile de supprimer les chèques. Il est probablement plus soucieux d'essayer de protéger la liberme que de briser la protection.
C'est presque la même chose. Il existe d'excellents outils de démontage et spécialistes autour. Et pour supprimer le chèque, vous n'avez probablement besoin que d'un débogueur et retournez un peu, pas comprendre l'ensemble de la lib.
Personnellement, je créerais une nouvelle bibliothèque statique, vérifiez votre couverture de code et copiez uniquement le code utilisé par l'application qui le consommait. Ou en d'autres termes, ne donnez pas plus que vous en avez besoin. P>
Puis, comme une personne mentionnée dans les commentaires, obfusez les appels. Votre bibliothèque va être sans valeur sans documentation si vos appels doivent être déchiffrés. Les chances sont que quiconque a l'aptitude de déchiffrer ce que vos appels signifient a probablement 80% d'une aménagement arrière-inverse de votre code de votre code déjà effectué. P>
Vous ne pouvez pas vraiment forcer une licence sur votre client à la dernière heure, à moins qu'ils ne soient acceptés. Donc, même si vous avez essayé de les forcer à licencier votre bibliothèque, il pourrait même pas être valable de le faire avec l'accord initial intact. Je ferais le contrôle des dégâts dans la mesure où votre temps vaut la peine et craquerais comme une expérience d'apprentissage. 5 mois à partir de maintenant, vous aurez probablement cette bibliothèque statique à nouveau sur quelque chose de mieux de toute façon. Et la prochaine fois, vous allez travailler cela dans votre accord. P>
Simple: ne pas distribuer la bibliothèque
Je dois distribuer le code complet au client selon NDA et dans ce code, j'ai utilisé ma propre bibliothèque
J'ai peur .. Comme vous avez un contrat avec votre client, vous devez partager le code de votre bibliothèque aussi!
@Jignesh Brahmkhatri - La NDA si mutuelle devrait les empêcher de partager votre bibliothèque statique avec n'importe quel tiers. Si vous souhaitez les bloquer à partir de l'utilisation de la bibliothèque statique elle-même, vous devez résoudre celui-ci par des moyens légaux, écrivez un contrat de licence. Vous ne pouvez pas cliquer sur une convention de licence rétroactivement si elles ont déjà reçu la bibliothèque sans licence.
@Jignesh Brahmkhatri - ou, vous pouvez simplement créer une sorte de gros plan de fil laids sur tout votre code (quelque chose que vous pouvez rechercher ou éteindre les résultats vraiment laids, tout en fonctionnant correctement), puis de passer à l'état sauvage avec l'obfuscation de code. Mais vraiment, c'est quelque chose qui devait arriver au moment où vous avez signé quelque chose qui vous a obligé à partager tout votre code. Une bonne chose pour la prochaine fois est d'écrire un contrat qui dit que votre code d'avant la date de contrat ne doit pas être partagé.