Come costruire un framework o una libreria per altri sviluppatori, in modo sicuro? [chiuso]


106

Abbiamo un'idea per un framework o una libreria che sarà molto utile per qualsiasi sviluppatore iOS. Quindi stiamo seriamente pensando di passare dallo sviluppo di app allo sviluppo di framework / librerie.

Ma quando vogliamo far pagare la libreria / framework, dobbiamo proteggere il codice in qualche modo. Come possiamo costruire un framework in modo tale che l'utente del nostro framework non possa vedere il codice sorgente, in modo simile a come non possiamo vedere il codice sorgente dei framework Apples? Spediscono solo i file di intestazione e alcuni strani file exe Unix con il framework compilato, immagino.

O se non è possibile creare un framework / libreria compilato che altri sviluppatori iOS possono utilizzare senza essere in grado di copiare e incollare i nostri codici sorgente, allora c'è un modo per offuscare il codice oggettivo-c?


22
File exe Unix :-)
Besi

6
Se vuoi davvero essere d'aiuto agli sviluppatori iOS, apri il codice open source!
Kaan Dedeoglu

4
@KaanDedeoglu - Ci sono pro e contro per gli utenti in entrambi gli scenari. Personalmente, preferisco un closed-source a un prezzo ragionevole, tutto è ben documentato, supportato e funziona solo con un framework open-source, non supportato e non documentato. Raro è il framework open-source che in realtà è ben documentato e gestito attivamente.
ArtOfWarfare

Risposte:


113

Sì, è possibile creare framework in modo che l'utente del framework non possa vedere il codice sorgente.

Dai un'occhiata a questi articoli (ho utilizzato con successo il primo per creare framework in passato - gli articoli successivi sono aggiornamenti dell'originale):

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/

Per utilizzare il framework, i tuoi utenti dovrebbero semplicemente trascinare il pacchetto .framework in Xcode. Saranno in grado di vedere i file di intestazione che copi nel pacchetto (vedi gli articoli sopra), ma non il sorgente (poiché non è incluso - solo l'output compilato è nel pacchetto).

Questo può anche essere un ottimo modo per distribuire il codice utilizzato per più progetti all'interno della tua azienda.


Aggiornare:

Controlla il link senza piume aggiunto di seguito: è molto più recente e tutto su una pagina: http://github.com/jverkoey/iOS-Framework . Vengono inoltre illustrati i problemi con diversi altri approcci. Questa è la guida che ora seguo quando cerco di ricordare cosa fare quando imposti un nuovo framework. :)

Update2 (con versione Xcode 6)

C'è un'opzione, esattamente quella che stai cercando Universal Framework for iOS:!

Il mio codice sarà visibile agli altri? R: No. Questo Framework esporterà un binario compilato, quindi chiunque può vederlo al suo interno. Puoi fare lo stesso per altri file, come XIB.

Perché ne ho bisogno? R: Questo è per sviluppatori / team che desiderano condividere i propri codici senza mostrare l'intero codice (file .m / .c / .cpp). Inoltre questo è per chi vuole organizzare codice compilato + risorse (immagini, video, suoni, XIB, plist, ecc.) In un unico posto. E questo è anche per quei team che vogliono lavorare insieme sopra la stessa base (framework).

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


1
Grazie compagno! Apple non rifiuterà un'app a causa di questo trucco? Hai effettivamente ottenuto un'app approvata sull'App Store che utilizzava tale framework?
Orgoglioso membro

3
Tanto per tornare a questo, a partire da Xcode 4 -all_load linker flag nell'impostazione di build "Other Linker Flags" non è richiesto. -ObjC è l'unica bandiera di cui hai bisogno.
Daniel

Hai ragione Daniel, una delle versioni più recenti di LLVM / Clang ha risolto questo problema. Grazie!
Jay Peyer

Adoro il collegamento GitHub al Framework iOS, +1
sbonami

Nota: se hai Xcode 4.5, avrai bisogno di una piccola modifica al tutorial come documentato qui: stackoverflow.com/questions/13571080/…
Lolo


9

C'è anche un modello per XCode 4 che ti permetterà di creare progetti di framework statici iOS.


conosci dei progetti che sono stati rilasciati con questo metodo?
Tomen

No, non lo so. Sto lavorando su uno che stiamo pensando di pubblicare in questo modo, ma non sono sicuro che sia quello con cui andremo alla fine.
Greg
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.