【发布时间】:2016-03-22 12:52:05
【问题描述】:
这只是一个信息性问题,我一直在研究在 iOS 中制作框架的几种方法。
我做了 Swift Pure 框架:- 我知道了,您必须将 xcodeproject 包含到应用程序项目中才能使用 .xocdeproject 中包含的 .framework。所以我认为这不是向第三方提供代码的安全方式,而且我也没有找到将第三方框架包含到我自己的框架中的方法。
客观静态库:- 在这种类型的库中,系统会生成一个安全的 .a 文件,使用的人不知道实现部分,但发现如果我想在其中包含第三方框架,我将不得不问最后用户将该第三方项目包含到最终应用程序中以编译它,这将向最终用户显示我拥有的所有依赖项,这是我不想要的。
我的问题是我想制作一个包含所有第三方框架的框架,但是,尽管最终用户仍可以根据需要使用其中的代码,但最终用户不应该使用它们,但最终用户不应该在我的框架中查看它们。
有出路吗?
我浏览了很多链接,发现很多人也有这个疑问
喜欢
Adding FacebookSDK.framework into my own Static library
在这篇文章中,要求一个人获取所有头文件和框架文件,然后将其添加到静态库以构建以添加框架本身,我也尝试过,但没有成功。
【问题讨论】:
-
如果框架的最终用户可以使用第三方框架的对象,他将如何在没有那些框架的.h的情况下编译他的代码?
-
@Xvolks 对。好的,有什么方法可以将这些第三方框架中的 .h 文件包含到我的框架/静态库中?
-
你想做的不是最佳实践。假设您将您的框架与 FacebookSDK 版本 1 链接,用户将他的应用程序与您的框架和 FacebookSDK 版本 2 链接。生成的应用程序将具有每个对象的两个不同版本。在运行时使用哪个版本是未定义的。这会造成随机崩溃和/或奇怪的行为。
-
没有可以避免的问题。是否可以?如果是,如何?谢谢
-
如果你把 3rd 方框架的 .h 放进去,最终用户就会知道你在使用它。你说你不想。如果添加 .h,为什么不添加整个框架?对于最终用户来说,@ss 真的很痛苦。我自己使用这样的框架,在隐藏模式下使用 OpenCV(我不知道版本),我的应用程序也使用 OpenCV(最新版本)。这种配置我随机崩溃。 :(
标签: ios objective-c swift static-libraries