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.