我正在创建一个模块化的开源库。假设项目中有 15 个.m
文件。
我应该(1)像Venmo iOS SDK(Cocoa Touch 静态库)一样发布它还是(2)像JSONKit(只是源代码)一样发布它?
我正在创建一个模块化的开源库。假设项目中有 15 个.m
文件。
我应该(1)像Venmo iOS SDK(Cocoa Touch 静态库)一样发布它还是(2)像JSONKit(只是源代码)一样发布它?
作为源代码发布意味着您和您的开发人员在新架构出现时不会遇到问题。构建为 armv6 的静态库现在无法与最新的 Xcode 一起使用。
源代码发布的一个警告,因为您不知道它添加到的项目将具有哪些构建设置,您需要做额外的工作以确保它尽可能地在没有警告的情况下构建,即使是迂腐警告。
我更喜欢框架而不是静态库。如果您最终需要,更容易在框架包中发送资源,并且动态链接没有成本。如果保证它的纯 C 和库依赖项存在,那么它可能没问题。但总的来说,我尽量避免静态链接,除非我知道目标操作系统在部署时具有该二进制文件的确切依赖项。
使用运行时所需的端点(为该确切平台编译但具有相同的外部接口)加载动态库比使用直接编译为不存在的外部依赖项的静态库失败要容易得多目标平台。
也许我疯了,但这是我一直用 C、C++ 或 obj C 做的事情。只是我的看法。