发布框架作为通用Pod

Cocoapod是一个依赖管理器,其中包含数千个库。 创建通用库允许安装pod,而无需在podfile中指定存储库URL。 该博客介绍了从创建框架到公开发布pod所涉及的步骤。

创建通用Pod

1.创建框架

创建名称为“ SampleUniversalFramework”的框架。 按照以下链接创建框架。

https://medium.com/@sundareshj75/creating-a-private-ios-framework-in-swift-and-distributing-it-using-cocoapods-6ddb5cfab92f

注意

为了删除模拟器架构,请在应用程序目标的“ 构建阶段 ”中创建一个新的“ 运行脚本 阶段 ”,并将以下代码段粘贴到脚本文本字段中:

  bash“ $ {BUILT_PRODUCTS_DIR} / $ {FRAMEWORKS_FOLDER_PATH} /SampleUniversalFramework.framework/strip-frameworks.sh” 

2.创建存储库

在gitlab中创建一个名为“ SampleUniversalFramework”的公共存储库,并添加MIT许可。

3.在桌面上创建一个空文件夹。

4.启动终端并导航到上面创建的文件夹。

  cd FOLDER_NAME 

5.在文件夹内克隆在步骤2中创建的存储库。

  git clone [PUBLIC_REPO_URL] 

6.导航到您刚刚使用cd克隆的存储库。

  cd sampleuniversalframework 

7.将步骤1中创建的框架粘贴到当前目录中。

8.运行以下命令,创建一个包含LICENSE和框架的zip文件夹。

  zip -r SampleUniversalFramework.zip许可SampleUniversalFramework.framework 

运行以上命令后,请观察文件夹结构。

9.现在是时候将“ SampelUniversalFramework.zip”推送到在步骤2中创建的存储库了。

运行以下命令

9.1。 将SampleUniversalFramework.zip添加到暂存区域中,从而准备将它们包含在下一个git commit

  git添加SampleUniversalFramework.zip 

9.2使用git commit记录对存储库的更改。

  git commit -m“创建和发布Universal Pod” 

9.3现在让我们创建tag 。 Tag非常类似于不变的分支,它只是指向特定提交的指针。标记发布点(1.5.3、1.5.4等)非常有用。默认情况下, git tag将创建HEAD所引用的提交上的标记。

  git标签1.5.3 

9.4。 上面的命令不会将标签发送到远程存储库。我们需要使用以下命令将这些标签显式发送到远程服务器:

  git push-标签 

将内容推送到master或任何分支都是可选的。

  git push origin master 

10.使用以下命令创建一个名为’ SampleUniversalFramework ‘的podspec文件。

Podspec文件包含有关应从何处获取源,使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)的详细信息。

 播客规范创建SampleUniversalFramework 

如果命令成功执行,则可以看到以下输出以及在当前目录中创建的podspec文件。

打开podspec文件,您会看到cocoapod已经为我们生成了pod spec模板。 现在,我们已经根据我们的要求对其进行了自定义。

11,编辑podspec

  Pod :: Spec.new do | s | 
  s.name =“ SampleUniversalFramework” 
s.version =“ 1.5.3”
s.summary =“样品盒”
s.description = <<-DESC
演示如何创建包含框架的通用pod
数据中心
  s.homepage =“ https://gitlab.com/rakshitha_achar” 
s.license = {:type =>“ MIT”,:file =>“ license”}
s.author = {“ USER_NAME” =>“ EMAIL_ADDRESS”}
s.ios.deployment_target ='8.0'
s.ios.vendored_frameworks ='SampleUniversalFramework.framework'
s.source = {:http =>'https://gitlab.com/rakshitha_achar/sampleuniversalframework/raw/1.5.3/SampleUniversalFramework.zip'}
s.exclude_files =“类/排除”
 结束 

确保that

  1. s.version与在步骤9.3中创建的标签匹配
  2. s.source应该指向gitlab存储库中zip文件夹所在的位置。

12.现在运行pod lib lint命令

 豆荚皮棉 

此命令将在本地对您的Pod进行检查,并且仅确保您正确提供了所有内容以创建Pod。 但这还不足以验证您的Pod,仅Pod spec Lint即可—详细给出详细的输出,有助于在出现任何错误时进行调试。 所以运行这个命令

  pod spec lint-详细 

如果一切顺利,您将看到成功的验证消息。 👏👏👏

普遍发布Pod

  1. 注册会议

CocoaPods Trunk是一种身份验证和CocoaPods API服务。 要将新的或更新的库发布到CocoaPods公开发布,您需要在Trunk中注册并在当前设备上具有有效的Trunk会话。

 吊舱中继寄存器EMAIL_ADDRESS USER_NAME 

这会将验证邮件从Cocoapod发送到指定的EMAIL_ADDRESS。 打开邮件,然后单击链接以激活会话。

2. 公开播客

现在我们可以实际将吊舱到行李箱了

 吊舱主干推SampleUniversalFramework.podspec 

这将更新规格库。 如果一切正常,您将在终端中看到祝贺消息,这表示您已经成功发布了自己的CocoaPod。

让我们在示例应用中进行测试

1.打开Xcode并创建一个“单视图应用程序”,然后将其关闭。

2.使用cd导航到包含应用程序的文件夹。

3.执行以下命令,创建一个默认的podfile

 荚初始化 

4.通过指定框架名称和可选的version(tag)编辑podfile。 当您有多个版本时,指定标签很有用。

  #取消注释下一行以定义项目的全局平台 
#platform:ios,'9.0'
 目标'TestFrame'做 
#如果您不使用Swift并且不想使用动态框架,请注释下一行
use_frameworks!
  pod'SampleUniversalFramework' 
  #TestFrame的吊舱 
 结束 

用吊舱名称指定版本

pod’SampleUniversalFramework’,’ VERSION

5.在当前项目中安装Pod。

 吊舱安装 

6.打开.xcworkspace

7.添加带有框架名称的import语句,然后从viewDidLoad调用Logger.printHelloWorld()函数。

  导入 UIKit 
导入 SampleUniversalFramework
   ViewController:UIViewController { 
覆盖 func viewDidLoad(){
超级 .viewDidLoad()
Logger.printHelloWorld()
}
}

现在运行项目,您可以看到输出为“ Hello World!”。