如何以安全的方式为其他开发人员构建框架或库?

Pro*_*ber 106 iphone frameworks ipad ios

我们有一个框架或库的想法,对任何iOS开发人员都非常有帮助.因此,我们正在认真考虑从应用程序开发切换到框架/库开发.

但是当我们想要为库/框架收费时,我们必须以某种方式保护代码.我们如何以这样的方式构建框架,使我们框架的用户看不到源代码,类似于我们如何看不到Apples框架的源代码?我猜他们只用汇编的框架发送头文件和一些奇怪的Unix exe文件.

或者如果不可能使其他iOS开发人员可以使用的编译框架/库而无法复制和粘贴我们的源代码,那么有没有办法混淆Objective-c代码?

Jay*_*yer 113

是的,可以构建框架,以便框架的用户无法看到源代码.

看看这些文章(我过去成功使用了第一篇创建框架 - 后面的文章是对原文的更新):

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/

要使用该框架,您的用户只需将.framework包拖到Xcode中即可.他们将能够看到您复制到包中的头文件(请参阅上面的文章),但不能看到源(因为它不包括在内 - 只有编译后的输出在包中).

这也是分发用于公司内多个项目的代码的好方法.


更新:

查看下面添加的无毛链接 - 它是更新的,并且都在一个页面上:http://github.com/jverkoey/iOS-Framework.它还列出了其他几种方法的问题.这是我在尝试记住在设置新框架时要做什么时所遵循的指南.:)

Update2(Xcode 6发布)

有一个选项,正是您正在寻找: Universal Framework for iOS!

其他人可以看到我的代码吗?答:不可以.此框架将导出已编译的二进制文件,因此任何人都可以在其中查看.您可以为其他一些文件(如XIB)创建相同的文件.

为什么我需要这个?答:这适用于想要共享代码而不显示整个代码(.m/.c/.cpp文件)的开发人员/团队.此外,这是为了谁想要将编译的代码+资源(图像,视频,声音,XIB,plist等)组织到一个地方.这也适用于那些想要在同一个基础(框架)之上一起工作的团队.

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

  • 回到这一点,从Xcode 4开始,"Other Linker Flags"构建设置中的-all_load链接器标志不是必需的.-ObjC是您需要的唯一标志. (3认同)

fea*_*ess 51

本指南有点用于创建iOS静态框架:

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


Gre*_*reg 9

还有一个XCode 4模板,可以让你创建iOS静态框架项目.