iOS:我可以创建一个所有类(.h 和 .m)为公共的静态库吗?

Posted

技术标签:

【中文标题】iOS:我可以创建一个所有类(.h 和 .m)为公共的静态库吗?【英文标题】:iOS: Can i create a static library with all classes (.h & .m) as public? 【发布时间】:2016-04-10 09:17:18 【问题描述】:

我有一堆类想要与其他人分享,所以我想创建一个静态库,但我不想隐藏我的代码。如果他们愿意,我想允许他们将零钱存入图书馆。

我可以共享一个文件夹,但我想将所有文件合并到一个包中,以便于管理和维护。

静态库通常只向用户显示头文件 (.h),但是否可以让实现 (.m) 文件也可见?

我还有一个静态库,它是这个库的依赖项。我可以将一个静态库放在另一个静态库中吗?或者我必须在我的项目中添加这两个文件?

我之前没有做过这个图书馆的东西,所以我朝着正确的方向前进吗?还是在 ios 中有更合适的方式可以满足我的要求?

谢谢!

【问题讨论】:

【参考方案1】:

将代码作为框架发布,而不是共享文件夹,而是将库变成 GitHub 或其他任何地方的常规项目。通过CocoaPods 或Carthage 添加安装库所需的内容。使用semantic versioning 进行适当的发布,编写适当的变更日志。

第一次要经历很多事情,但这是一个很好的做法,会有所回报。有关此类库的示例,请参阅我的 simple goo.gl client。

【讨论】:

谢谢!我已经成功创建了自己的 Cocoapod 项目,非常有帮助。我还有一个问题,将代码作为框架发送,有什么方法可以使所有用户都可以看到实现文件(.m),或者我只能使用(.h)?公开 .m 文件是个好主意吗?会有任何编译警告或错误吗? 干得好!有两种选择:分发带有标题的静态库和分发整个内容。我通常选择后者,分发完整的资源。这样其他人就可以充分利用您的代码。 好的,我会选择第二个选项。感谢您的建议。我有我的答案:)

以上是关于iOS:我可以创建一个所有类(.h 和 .m)为公共的静态库吗?的主要内容,如果未能解决你的问题,请参考以下文章

iOS 开发之如何生成SDK

将 iOS 开发者帐户从个人转换为公司 [关闭]

IOS视图变化

代码混淆 iOS

如何使用 nsobject 类共享数据(在 watch OS 2 中)

ios -逆向-代码混淆