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

106

Nous avons une idée pour un framework ou une 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 framework / bibliothèque.

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 créer un framework de telle manière 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 bizarres avec le cadre 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 pouvoir copier et coller nos codes sources, alors existe-t-il un moyen de masquer le code objective-c?

Membre fier
la source
22
Fichier Unix exe :-)
Besi
6
Si vous voulez vraiment être utile aux développeurs iOS, ouvrez-le!
Kaan Dedeoglu
4
@KaanDedeoglu - Il y a des avantages et des inconvénients pour les utilisateurs dans les deux scénarios. Personnellement, je préfère une source fermée à prix raisonnable, tout est bien documenté, pris en charge et fonctionne simplement avec un cadre open-source, non pris en charge et non documenté. Rare est le framework open-source qui est en fait presque bien documenté ET activement maintenu.
ArtOfWarfare

Réponses:

113

Oui, il est possible de créer des frameworks afin que l'utilisateur du framework ne puisse pas voir le code source.

Consultez 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 le framework, vos utilisateurs feraient simplement glisser le bundle .framework dans Xcode. Ils pourront voir les fichiers d'en-tête que vous copiez dans le bundle (voir les articles ci-dessus), mais pas la source (car elle n'est pas incluse - seule la sortie compilée est dans le bundle).

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


Mettre à 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 en essayant de me rappeler quoi faire lors de la mise en place d'un nouveau framework. :)

Update2 (avec la version Xcode 6)

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

Mon code sera-t-il visible par les autres? R: Non. Ce Framework exportera un binaire compilé, afin que tout le monde puisse voir à l'intérieur. Vous pouvez faire la même chose pour certains autres fichiers, comme les XIB.

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

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

Jay Peyer
la source
1
Merci mon pote! Apple ne rejettera pas une application à cause de cette astuce? Avez-vous réellement obtenu une application approuvée sur l'App Store qui utilisait un tel cadre?
Membre fier du
3
Pour revenir à ceci, à partir de Xcode 4 -all_load, l'indicateur de l'éditeur de liens dans le paramètre de construction "Autres indicateurs de l'éditeur de liens" n'est pas requis. -ObjC est le seul drapeau dont vous avez besoin.
Daniel
Vous avez raison Daniel, l'une des versions les plus récentes de LLVM / Clang a corrigé ce problème. Merci!
Jay Peyer
J'adore le lien github vers le framework iOS, +1
sbonami
Remarque: Si vous avez Xcode 4.5, vous aurez besoin d'une petite modification du tutoriel comme documenté ici: stackoverflow.com/questions/13571080/...
Lolo
9

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

Greg
la source
connaissez-vous des projets qui ont été publiés avec cette méthode?
Tomen
Non, non. Je travaille sur celui que nous envisageons de sortir de cette façon, mais je ne sais pas si c'est ce que nous allons faire à la fin.
Greg