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

     2023-02-22     219

关键词:

【中文标题】如何以安全的方式为其他开发人员构建框架或库? [关闭]【英文标题】: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 静态框架项目。

【讨论】:

你知道使用这种方法发布的项目吗? 不,我不知道。我正在开发一款我们正在考虑以这种方式发布的产品,但我不确定我们最终是否会采用这种方式。

python为啥这么多框架

...,而不需要担心返工。并且它是开源和免费的。特点:·安全系数高,能帮助开发者规避常见错误。·速度特别快,因为它的设计目的是使应用程序非常快地从概念阶段过渡到最终阶段。·扩展性好。·从21世纪初Django成为开源框... 查看详情

如何编写一个企业级hyperledgerfabric开源框架(代码片段)

Convector(a.k.aConvectorSmartContracts)是为企业区块链框架构建的JavaScript开发框架。它增强了开发体验,同时帮助开发人员创建更强大,更安全的智能合约系统。它通过链代码和后端一直到前端,允许开发人员以库的形式重用相同的... 查看详情

干货!攻城狮的交流分享!聊一聊开发人员快速提升自己的方式

...独特性且能展示开发人员创造力的应用web后端框架-了解如何构建框架利用主要使用的编程语言构建一个程序包,并在多个项目中使用围绕自己超级感兴趣的事物构建一个更大的项目构建一个完全超乎你当前理解范围的事物向开源... 查看详情

有哪些python框架需要学习

...序,而不需要担心返工。并且它是开源和免费的。特点:安全系数高,能帮助开发者规避常见错误。速度特别快,因为它的设计目的是使应用程序非常快地从概念阶段过渡到最终阶段。扩展性好。从21世纪初Django成为开源框架到... 查看详情

如何以安全的方式为客户提供 JSON Web 令牌(JWT)?

】如何以安全的方式为客户提供JSONWeb令牌(JWT)?【英文标题】:HowtogiveclientsJSONwebtoken(JWT)insecurefashion?【发布时间】:2018-03-0201:50:15【问题描述】:我有一个python应用程序需要为用户提供一个JSONWeb令牌以进行身份​​验证。令... 查看详情

如何将 xaml 模板打包成 nuget 包以供其他开发人员重用?

】如何将xaml模板打包成nuget包以供其他开发人员重用?【英文标题】:HowcanIpackageaxamltemplateintoanugetpackageforotherdeveloperstoreuse?【发布时间】:2021-08-2809:10:58【问题描述】:我从一些可重用的代码和框架中创建了一个nuget,这些代码... 查看详情

如何以编程方式禁用 chrome 开发人员工具中的 javascript?

】如何以编程方式禁用chrome开发人员工具中的javascript?【英文标题】:Howtodisablejavascriptinchromedevelopertoolsprogrammatically?【发布时间】:2015-12-0416:34:38【问题描述】:Theotherrelatedquestion仅说明如何通过Chrome提供的GUI打开/关闭JavaScript... 查看详情

java目前主流框架有哪些?

...能力使它很容易扩展,无论应用程序的大小或用户的数量如何。它速度快、功能强大、易于扩展、修改和配置。框架3:Struts框架该框架帮助自定义软件开发人员创建易于维护的企业级应用程序。 查看详情

java开发后台的框架都有哪些

...能力使它很容易扩展,无论应用程序的大小或用户的数量如何。它速度快、功能强大、易于扩展、修改和配置。框架#3:Struts该框架帮助自定义软件开发人员创建易于维护的企业级应用程序。这个框架 查看详情

为 Android 制作可再发行组件或库

...我可以授权给第三方开发人员的库/UI小部件/组件的最佳方式是什么?在C++中,我会向客户发送我的头文件和*.a文件,但我不知道Java中的等价物。是否有任何 查看详情

开发人员如何以编程方式编辑 Google Doc?有文档 API 吗?

】开发人员如何以编程方式编辑GoogleDoc?有文档API吗?【英文标题】:HowcandeveloperseditaGoogleDocprogrammatically?IsthereaDocsAPI?【发布时间】:2011-01-2704:24:22【问题描述】:(据我所知)似乎没有用于编辑GoogleDocs的API(不是电子表格,... 查看详情

前端框架选型

...需要达到怎样的性能指标、可以实现多少用户的并发安全如何保障用户安全、如何应对客户端攻击、如何应对服务端攻击平台化是否需要作为一个平台,来承载其他系统代码维护是否稍微有经验的开发人员都能快速上手用户体验... 查看详情

如何构建 PyQT 项目?

】如何构建PyQT项目?【英文标题】:HowtobuildPyQTproject?【发布时间】:2010-10-1018:23:15【问题描述】:我有一个简单的PyQT项目。我想知道如何在Windows中以这种方式构建它,使其成为可运行的可执行文件。我不想要求用户为他的计... 查看详情

配置文件和开发人员证书

...?它们的重要性是什么?我们从哪里得到它们?以及我们如何使用配置文件或开发人员证书或其他方式分发我们的iPhone应用程序以供其他用户进行测试,并最终在AppStore中分发给最终客户。请对这件 查看详情

如何构建软件框架 [关闭]

】如何构建软件框架[关闭]【英文标题】:HowtoBuildaSoftwareFramework[closed]【发布时间】:2013-02-2716:45:57【问题描述】:我正在考虑为我的论文开发一个软件框架。我仍然需要决定软件框架将解决哪些问题。我在互联网上搜索了有关... 查看详情

如何以增量方式构建非二叉树(具有依赖关系)

】如何以增量方式构建非二叉树(具有依赖关系)【英文标题】:Howtobuildanon-binarytree(withdependencies)incrementally【发布时间】:2016-01-0815:15:03【问题描述】:简短说明我需要从确实相互依赖但不重复且不循环的项目列表中构建一个... 查看详情

如何使用 ivy api 以编程方式为缓存中的模块构建路径?

】如何使用ivyapi以编程方式为缓存中的模块构建路径?【英文标题】:Howtoprogrammaticallybuildapathforamoduleinthecacheusingivyapi?【发布时间】:2015-09-1021:05:01【问题描述】:我想按照ivyofficialdocumentation中的描述以编程方式执行从缓存构建... 查看详情

如何使用 iPhone 的 JSON 框架以编程方式生成 JSON

】如何使用iPhone的JSON框架以编程方式生成JSON【英文标题】:HowtogenerateJSONprogrammaticallyusingJSONframeworkforiPhone【发布时间】:2011-05-1804:12:16【问题描述】:我正在创建一个应用程序,我需要将JSON发送到服务器以获得一些响应。如何... 查看详情