如何以安全的方式为其他开发人员构建框架或库? [关闭]
Posted
技术标签:
【中文标题】如何以安全的方式为其他开发人员构建框架或库? [关闭]【英文标题】:How to build a framework or library for other developers, the secure way? [closed] 【发布时间】:2011-05-03 04:16:13 【问题描述】:我们有一个对任何 ios 开发人员都非常有帮助的框架或库的想法。因此,我们正在认真考虑从应用开发转向框架/库开发。
但是当我们想要为库/框架收费时,我们必须以某种方式保护代码。我们如何构建一个框架,让我们框架的用户看不到源代码,就像我们看不到苹果框架的源代码一样?我猜他们只提供头文件和一些带有编译框架的奇怪的 Unix exe 文件。
或者,如果无法制作其他 iOS 开发人员可以在不复制和粘贴我们的源代码的情况下使用的编译框架/库,那么有没有办法混淆 Objective-c 代码?
【问题讨论】:
Unix exe文件:-) 如果你真的想对 iOS 开发者有所帮助,开源吧! @KaanDedeoglu - 在这两种情况下,用户各有利弊。就个人而言,我更喜欢价格合理的封闭源代码,一切都有很好的文档记录、支持和正常工作的框架,而不是开源、不受支持和未记录的框架。很少有开源框架,实际上几乎记录在案并得到积极维护。 【参考方案1】:是的,可以构建框架,使框架的用户看不到源代码。
查看这些文章(我过去成功使用第一篇创建框架——后面的文章是对原始文章的更新):
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/
【讨论】:
谢谢伙计!苹果不会因为这个技巧而拒绝一个应用程序吗?您是否真的在 App Store 上获得了使用此类框架的 App 获得批准? 只是回到这一点,从 Xcode 4 开始,“其他链接器标志”构建设置中的 -all_load 链接器标志不是必需的。 -ObjC 是您唯一需要的标志。 你说得对 Daniel,LLVM/Clang 的最新版本之一修复了这个问题。谢谢! 喜欢 iOS 框架的 github 链接,+1 注意:如果您有 Xcode 4.5,则需要对教程进行一些小修改,如下所述:***.com/questions/13571080/…【参考方案2】:本指南是关于创建 iOS 静态框架的更新:
https://github.com/jverkoey/iOS-Framework
【讨论】:
【参考方案3】:还有一个template for XCode 4 可以让你创建 iOS 静态框架项目。
【讨论】:
你知道使用这种方法发布的项目吗? 不,我不知道。我正在开发一款我们正在考虑以这种方式发布的产品,但我不确定我们最终是否会采用这种方式。以上是关于如何以安全的方式为其他开发人员构建框架或库? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章