2011-08-02 5 views
8

He creado una biblioteca estática en iPhone sdk, y me preocupa que si proporciono código a cualquier persona en la que se está utilizando la biblioteca estática, cualquiera pueda usar la biblioteca estática. Entonces, ¿hay alguna manera de restringirlos usando la biblioteca hasta que obtengan licencia? Soy nuevo en licenciar cualquier biblioteca.¿Cómo puedo restringir a cualquier desarrollador el uso de mi biblioteca estática creada?

+9

Simple: No distribuya la biblioteca –

+0

Tengo que distribuir todo el código al cliente según NDA y en ese código he usado mi propia biblioteca – iMOBDEV

+0

Me temo ... ya que tiene un contrato con su cliente que tiene para compartir el código de tu biblioteca también! – Saurabh

Respuesta

21

Este es un problema que debe resolver por medios legales, no por ninguna solución técnica.

Asegúrese de entregar la biblioteca solo a personas de su confianza y, si es necesario, haga que firmen un acuerdo para no propagarla.

También pregúntese si merece la pena. ¿Su código es tan exclusivo que no pueden encontrarlo en otro lugar, o pueden duplicarlo en unos pocos días, usando solo Google y stackoverflow?

+5

Esta es la única respuesta real. Incluso los grandes (MS, Adobe, etc.) tienen problemas para evitar que los piratas distribuyan su software. A falta de eso, una vez lanzado, tienes exactamente cero control. Lo que significa que tu única protección real es a través del sistema legal. – NotMe

+0

@PeyloW su consejo es realmente genuino y bueno, pero él está pidiendo licencias para la biblioteca. Significa que hay alguna forma de licenciar la biblioteca? –

+0

@Amit - La concesión de licencias no es difícil, sino un trabajo legal. Escriba un acuerdo de licencia, preferiblemente haga que un abogado lo escriba por usted. Haga que el cliente lo firme y luego envíeles la biblioteca. Si violan el acuerdo firmado, resuelva el problema en la corte si/según sea necesario. Al final del día, solo funciona si agrega el ingrediente mágico; *confianza*. – PeyloW

0

Si proporciona la biblioteca estática, nadie puede recuperar el código.

¿Tiene reservas en otros utilizando también su biblioteca estática?

+0

Sí, si alguien puede copiar la biblioteca estática y acceder a mi biblioteca estática, no quiero eso. – iMOBDEV

2

Como se ha dicho por @PeyloW,

Este es un problema que debe resolver por medios legales, no por ninguna solución técnica.

Pero hay algunas formas sencillas de "bloquear el código": Se puede crear un archivo RAR o ZIP, cifrado con contraseña, y después de obtener la licencia, se les puede decir la contraseña.

+0

gracias, pero después de darles una contraseña, pueden distribuirlo a cualquier persona, ¿verdad? – iMOBDEV

+0

Sí. Entonces, deberías hacer que firmen un acuerdo, o algo así. – akashivskyy

+0

hmmmm, esa es una buena idea, pero puede ser así, incluso si proporciono una biblioteca estática, y como se ejecutan en otra PC, no reaccionará. Quiero decir, ¿puedo poner una restricción de que la biblioteca estática solo puede ejecutarse en una PC específica hasta que no les dé licencia? – iMOBDEV

1

Si desea "vincular" la licencia a una "computadora del desarrollador", entonces simplemente necesita algo que pueda enlazar. Por ejemplo, puede ser el UDID del emulador.

se puede generar una licencia para UDID del emulador, y sólo limitar el desarrollo emulador, al tiempo que permite el acceso sin restricciones para el código ARM (el dispositivo)

  • por lo que, básicamente, puede comprobar si hay emulador UDID
  • archivo de verificación de licencia
  • si el archivo de licencia permite que UDID, ejecute
  • si no, mostrar un mensaje etc

para fines de desarrollo, todo el mundo necesita un emulador, así que supongo que limitarlo es suficiente para ti.

+0

Si envía el código, es fácil eliminar los cheques. Probablemente sea más complicado tratar de proteger la lib que romper la protección. –

+0

Supongo que no está enviando el código, solo la biblioteca –

+0

Eso es casi lo mismo. Existen excelentes herramientas de desensamblaje y especialistas en todo. Y para eliminar el cheque probablemente solo necesite un depurador y voltee un poco, sin entender toda la lib. –

1

Personalmente, creaba una nueva biblioteca estática, verificaba la cobertura de su código y copiaba solo el código utilizado por la aplicación que lo consumía. O en otras palabras, no regalar más de lo que necesita.

Luego, como alguien mencionado en los comentarios, ofusca las llamadas. Su biblioteca carecerá de valor sin documentación si sus llamadas deben ser descifradas. Las probabilidades indican que cualquiera que tenga la capacidad de descifrar lo que significan sus llamadas probablemente ya tenga 80% de una ingeniería inversa de sala blanca de su código.

No se puede obligar a una licencia a su cliente en la última hora a menos que esté de acuerdo. Por lo tanto, incluso si intenta forzarlos a licenciar su biblioteca, podría no ser válido hacerlo con el acuerdo original intacto. Haría control de daños en la medida de tu tiempo y apuntaré esto como una experiencia de aprendizaje.En 5 meses a partir de ahora, es probable que tengas esa biblioteca estática refabricada para algo mejor de todos modos. Y la próxima vez, lo incluirás en tu acuerdo.

Cuestiones relacionadas