我们是否需要为 CocoaPods 和 Carthage 创建 iOS 个通用框架?

Do we need to create iOS Universal Frameworks for CocoaPods and Carthage?

  1. 我的理解是否正确,只有当我们通过提供二进制文件来分发我们的库时才需要手动创建 Universal Frameworks/Libraries(比方说直接下载 .framework)?因此,如果我们使用 CocoaPods 或 Carthage 进行分发,这些工具将自己从我们的源代码创建 Universal Frameworks/Libraries,对吧?

  2. 据我了解,CocoaPods 和 Carthage 允许通过仅分发二进制文件来隐藏源代码。 这是否意味着在这种情况下我们需要在使用这些服务之前自己创建Universal Frameworks/Libraries

  3. 2020 年创造 Universal Frameworks/Libraries 的最佳方式是什么,XCFramework

谢谢。

  1. 如果您使用 CocoaPods 或 Carthage 分发源代码,这些系统会在消费者的项目构建时将您的源代码编译成 .framework 或消费者端的静态库。消费者将可以访问您的源代码。

  2. 是。

  3. 如果您的框架打算用于 Mac Catalyst 应用程序 - 那么 XCFramework 是唯一的选择。否则,您仍然可以发布胖框架 - 旧的,但是黄金。

更新:

使用 AppleSilicon,XCFramework 成为您发布预构建框架的唯一格式,因为即使 iOS 模拟器现在也应该支持 x86_64arm64 架构。