iOS:何时选择Cocoa Touch静态库或框架?

问题描述 投票:0回答:1

首先:我在这里阅读其他问题,但他们说明了Swift不能在框架或/和库中使用或过时(5年)。

为实现这一目标,Cocoa Touch Framework与Cocoa Touch静态库有哪些优点和缺点?

我试图在两个iOS目标之间共享代码,例如iPhone目标和iPad目标(此处不需要通用目标)。

如果我理解正确,静态库和应用程序代码将合并为一个二进制文件,而框架和应用程序代码的组合将是两个二进制文件。我想这意味着更多签名和更多DSYM文件上传到崩溃报告工具?

此外,框架应该/也可以独立工作,而静态库总是需要其他代码。

测试,分发到App Store,调试(断点)和编译时间怎么样?哪个选项对于什么任务执行得更好?

ios swift frameworks static-libraries
1个回答
3
投票

静态与动态框架的一些澄清:iOS Static vs Dynamic frameworks clarifications

语言:至于Swift的使用,在你无法用它创建一个静态库之前,你可以从Xcode 9开始。所以我猜Swift vs. ObjC不会有问题。没有找到任何关于使用Swift创建静态库的教程,仅用于创建框架(例如:https://www.raywenderlich.com/5109-creating-a-framework-for-ios)。因此,就查找资源/参考而言,框架可能更容易。

dSYM:引用Apple员工的回答:“如果您构建的框架是应用程序目标的依赖项,那么框架的dSYM将存在于您归档应用程序以进行分发时创建的存档中。如果您使用的是由已经编译的供应商提供的框架,您需要联系框架供应商关于dSYM。“ (https://forums.developer.apple.com/thread/70716)。至于静态库,就你处理的dSYM而言,它们的工作量会减少。 (Why does not Xcode generate dSYM for static library

Codeigning for Frameworks:“开发人员可以自由地分发iOS框架而无需对其进行编码,因为消费者无论如何都会对其进行重新编码,但是Xcode强迫开发人员在为iOS设备构建时对其框架进行编码”(Creating iOS/OSX Frameworks: is it necessary to codesign them before distributing to other developers?

对于测试,在单元测试目标的构建阶段添加框架或静态库应该可以完成这项工作。

断点:静态库:Debugging a static library in Xcode框架:Xcode 9 - Framework breakpoints

对于我在链接中看到的内容,虽然静态库可能会更高效,但Frameworks的设置工作要少得多。

© www.soinside.com 2019 - 2024. All rights reserved.