Tag: 伞框架

iOS:带有CocoaPods的伞框架

本文将教您如何通过CocoaPods分发iOS私有的伞式框架。 目录 1.简介 2.创建具有依赖关系的框架 3.创建一个Pod伞框架 4.分配豆荚 5.集成雨伞盒 介绍 在我以前的项目之一中,我特别需要创建一个包含两个以上框架的框架。 目标是尽可能隐藏这两个子框架的使用。 然后,所有内容都必须作为私有且封闭的Pod发布。 框架不过是一组可以重用的方法和逻辑。 框架是封闭的 ,因此无法读取源代码,只有定义为open或public的方法和类可见并且可以调用。 在Apple开发环境中,一个框架与另一个框架的合并称为“ Umbrella ”。 这种类型的框架旨在隐藏某些子框架的使用,从而促进其使用。 在继续进行此冒险之前,很高兴知道苹果并未正式支持iOS的Umbrella Frameworks,确实引用了官方文档: 不要创建伞框架。 尽管可以使用Xcode创建伞形框架,但是对于大多数开发人员而言,这样做是不必要的,因此不建议这样做。 苹果使用伞形框架掩盖了操作系统中库之间的某些相互依赖关系。 在几乎所有情况下,您都应该可以将代码包含在单个标准框架包中。 或者,如果您的代码具有足够的模块化,则可以创建多个框架,但是在那种情况下,模块之间的依赖关系将是最小的或不存在,因此不应保证为它们创建保护伞。 https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html“ Apple文档” 遵循本指南,您将创建一个带有CocoaPods依赖项的子框架,这是一个伞形框架,该框架将子框架与CocoaPods的其他依赖项结合在一起。 然后,您将所有内容发布为私有和封闭的pod,最后,我们将所有内容集成到测试项目中。 创建具有依赖关系的框架 第一步,我们创建带有他的依存关系的子框架。 就我而言,这是一个cocoapod供应的框架,因此我不必创建它。 让我们从创建一个新的Cocoa Touch Framework开始 : 下一步是创建跨平台聚合目标 : 聚合目标没有关联的产品,也没有构建规则。 您可以使用构建子框架所需的依赖关系定义Podfile,然后可以执行以下操作: 吊舱安装 对于此示例,Podfile如下: 添加以下代码: 这种结构将使您可以将源除以归档框架所需的项目划分。 当您创建两个podspec时,这将非常有用,一个用于发布供应商的框架,另一个用于发布开放式框架,非常适合测试。 现在到了在项目中创建正确的连接并使所有工作正常进行的时候了。 将Sources文件夹和Subframework.framework添加到项目中。 然后导航到目标伞的“构建阶段设置”,并添加一个“ 新复制文件阶段” 。 确保Subframework.framework出现在以下字段中: 将二进制文件与库链接 复制捆绑包资源 复制文件 ,将目标设置为Frameworks,并使用活动代码签名 […]