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


106

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

但是,当我们要为库/框架收费时,我们必须以某种方式保护代码。我们如何以这样的方式构建框架,使我们的框架的用户看不到源代码,就像我们看不见Apples框架的源代码一样?我猜他们只将头文件和一些奇怪的Unix exe文件与已编译的框架一起提供。

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


22
Unix exe文件:-)
Besi

6
如果您真的想对iOS开发人员有所帮助,请将其开源!
Kaan Dedeoglu

4
@KaanDedeoglu-两种情况下用户的利弊。就我个人而言,我更喜欢价格合理的封闭源代码,所有内容都得到了充分的文档记录,支持和框架,而不是开放源代码的不受支持且没有文档记录的框架。稀有的开放源代码框架实际上几乎在有据可查并得到积极维护的地方。
ArtOfWarfare 2013年

Answers:


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/


1
谢了哥们!苹果不会因为这个把戏拒绝应用程序吗?您实际上在使用这种框架的App Store上获得了批准的App吗?
骄傲的会员

3
回到这个问题,从Xcode 4开始,不需要“ Other Linker Flags”构建设置中的-all_load链接器标志。-ObjC是您唯一需要的标志。
丹尼尔(Daniel)

您说得对,丹尼尔(LLVM / Clang)的最新版本之一已解决此问题。谢谢!
杰伊·派耶

爱github链接到iOS框架,+ 1
sbonami

注意:如果您具有Xcode 4.5,则需要对本教程进行一些小的修改,如此处记录:stackoverflow.com/questions/13571080/…–
Lolo,


9

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


您知道用这种方法发布的项目吗?
Tomen

不,我不知道 我正在研究一种我们正在考虑以这种方式发布的方法,但是我不确定最终是否会这样做。
格雷格,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.