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)为公共的静态库吗?的主要内容,如果未能解决你的问题,请参考以下文章