Como construir um framework ou biblioteca para outros desenvolvedores, de forma segura? [fechadas]


106

Temos uma ideia para uma estrutura ou biblioteca que será muito útil para qualquer desenvolvedor iOS. Portanto, estamos pensando seriamente em mudar do desenvolvimento de aplicativos para o desenvolvimento de framework / biblioteca.

Mas quando queremos cobrar pela biblioteca / estrutura, devemos proteger o código de alguma forma. Como podemos construir um framework de tal forma que o usuário do nosso framework não possa ver o código-fonte, da mesma forma que não podemos ver o código-fonte dos frameworks Apples? Eles enviam apenas os arquivos de cabeçalho e alguns arquivos exe Unix estranhos com a estrutura compilada, eu acho.

Ou se não for possível fazer uma estrutura / biblioteca compilada que outros desenvolvedores iOS possam usar sem serem capazes de copiar e colar nossos códigos-fonte, então há uma maneira de ofuscar o código objetivo-c?


22
Arquivo exe Unix :-)
— Besi

6
Se você realmente deseja ser útil para os desenvolvedores iOS, abra o código-fonte!
— Kaan Dedeoglu

4
@KaanDedeoglu - Existem prós e contras para os usuários em ambos os cenários. Pessoalmente, eu prefiro um código fechado com preços razoáveis, tudo é bem documentado, com suporte e funciona apenas com um framework de código aberto, sem suporte e não documentado. Raro é a estrutura de código aberto que, na verdade, é bem documentada E mantida ativamente.
— ArtOfWarfare

Respostas:


113

Sim, é possível construir frameworks de forma que o usuário do framework não possa ver o código-fonte.

Confira estes artigos (usei com sucesso o primeiro para criar estruturas no passado - os artigos posteriores são atualizações do 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/

Para usar a estrutura, seus usuários simplesmente arrastariam o pacote .framework para o Xcode. Eles serão capazes de ver os arquivos de cabeçalho que você copiou para o pacote (veja os artigos acima), mas não a fonte (já que não está incluída - apenas a saída compilada está no pacote).

Essa também pode ser uma ótima maneira de distribuir o código usado para vários projetos em sua empresa.


Atualizar:

Confira o link sem penas adicionado abaixo - é muito mais recente e tudo em uma página: http://github.com/jverkoey/iOS-Framework . Ele também apresenta os problemas com várias outras abordagens. Este é o guia que sigo agora quando tento me lembrar do que fazer ao configurar uma nova estrutura. :)

Update2 (com versão Xcode 6)

Existe uma opção, exatamente que você está procurando Universal Framework for iOS:!

Meu código ficará visível para outras pessoas? R: Não. Este Framework exportará um binário compilado, para que qualquer pessoa possa ver dentro dele. Você pode fazer o mesmo para alguns outros arquivos, como XIBs.

Por que preciso disso? R: Isso é para desenvolvedores / equipes que desejam compartilhar seus códigos sem mostrar o código inteiro (arquivos .m / .c / .cpp). Além disso, é para quem deseja organizar código compilado + recursos (imagens, vídeos, sons, XIBs, plist, etc) em um único lugar. E isso também é para aquelas equipes que querem trabalhar juntas acima da mesma base (framework).

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


1
Obrigado cara! A Apple não rejeitará um aplicativo por causa desse truque? Você realmente conseguiu um aplicativo aprovado na App Store que usava tal estrutura?
— Membro orgulhoso,

3
Só para voltar a isso, a partir do Xcode 4 -all_load linker flag na configuração de compilação "Other Linker Flags" não é necessário. -ObjC é a única bandeira de que você precisa.
— Daniel

Você está certo Daniel, uma das versões mais recentes do LLVM / Clang corrigiu isso. Obrigado!
— Jay Peyer

Adorei o link do github para o iOS Framework, +1
— sbonami

Observação: se você tiver o Xcode 4.5, precisará de uma pequena modificação no tutorial, conforme documentado aqui: stackoverflow.com/questions/13571080/…
— Lolo


9

Também existe um modelo para o XCode 4 que permite criar projetos de estrutura estática iOS.


você conhece projetos que foram lançados com este método?
— Tomen

Não, eu não. Estou trabalhando em um que estamos pensando em lançar desta forma, mas não tenho certeza se é isso que vamos usar no final.
— Greg
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.