web-dev-qa-db-fra.com

Comment construire un framework ou une bibliothèque pour d'autres développeurs, de manière sécurisée?

Nous avons une idée de framework ou de bibliothèque qui sera très utile pour tout développeur iOS. Nous envisageons donc sérieusement de passer du développement d'applications au développement de structures/bibliothèques.

Mais lorsque nous voulons facturer la bibliothèque/le framework, nous devons protéger le code d’une manière ou d’une autre. Comment pouvons-nous construire un framework de telle sorte que l'utilisateur de notre framework ne puisse pas voir le code source, de la même manière que nous ne pouvons pas voir le code source des frameworks Apples? Ils ne livrent que les fichiers d'en-tête et certains fichiers exe Unix étranges avec le framework compilé, je suppose.

Ou s'il n'est pas possible de créer un framework/bibliothèque compilé que d'autres développeurs iOS peuvent utiliser sans être en mesure de copier/coller nos codes source, existe-t-il un moyen de masquer le code de objective-c?

106
Proud Member

Oui, il est possible de construire des frameworks pour que l'utilisateur ne puisse pas voir le code source.

Découvrez ces articles (j’ai utilisé avec succès le premier pour créer des frameworks dans le passé - les derniers articles sont des mises à jour de l’original):

http://www.drobnik.com/touch/2010/04/making-your-own-iphone-frameworks/

http://www.drobnik.com/touch/2010/05/making-your-own-iphone-frameworks-in-xcode/

http://www.drobnik.com/touch/2010/10/embedding-binary-resources/

Pour utiliser la structure, vos utilisateurs doivent simplement faire glisser le groupe .framework dans Xcode. Ils pourront voir les fichiers d’en-tête que vous copiez dans la liasse (voir les articles ci-dessus), mais pas la source (car elle n’est pas incluse - seule la sortie compilée est dans la liasse).

Cela peut également être un excellent moyen de distribuer du code utilisé pour plusieurs projets au sein de votre entreprise.


Mise à jour:

Consultez le lien sans plumes ajouté ci-dessous - il est beaucoup plus récent et le tout sur une seule page: http://github.com/jverkoey/iOS-Framework . Il expose également les problèmes avec plusieurs autres approches. C’est le guide que je suis maintenant pour essayer de me rappeler quoi faire lors de la configuration d’un nouveau cadre. :)

Update2 (avec la version Xcode 6)

Il existe une option, exactement celle que vous recherchez: Universal Framework for iOS!

Mon code sera-t-il visible par les autres? R: Non. Ce cadre exportera un fichier binaire compilé, afin que tout le monde puisse le voir. Vous pouvez faire la même chose pour d'autres fichiers, tels que XIB.

Pourquoi ai-je besoin de cela? R: Ceci est destiné aux développeurs/équipes qui souhaitent partager leurs codes sans afficher l'intégralité du code (.m/.c /. fichiers cpp). De plus, c'est pour ceux qui veulent organiser le code compilé + les ressources (images, vidéos, sons, XIB, plist, etc.) en un seul endroit. Et ceci est également valable pour les équipes qui souhaitent travailler ensemble au-dessus de la même base (framework).

(c) http://blog.db-in.com/universal-framework-for-ios/

113
Jay Peyer

Ce guide est un peu plus récent pour la création de frameworks statiques iOS:

https://github.com/jverkoey/iOS-Framework

51
featherless

Il existe également un modèle pour XCode 4 qui vous permettra de créer des projets d'infrastructure statique iOS.

9
Greg