「CocoaPods」Podfile文件模板

前言:在iOS项目中,通常会使用到CocoaPods作为一个第三方库的依赖管理工具,可以简化对组件的依赖、更新的过程,本文将介绍在iOS项目中多Target企业级项目的Podfile文件编写格式

一、podfile介绍

先简单介绍一下podfile文件,podfile文件主要用来指定工程中依赖了那些组件。主要包含了依赖的组件名、组件版本、组件地址等。添加的一些第三方组件可以通过修改podfile文件,然后进行pod install进行引入至项目中;更新已有的第三方库,可以修改podfile文件,然后进行pod update进行修改,也可以指定对应的版本号

二、podfile文件书写规范

此处先贴代码,在代码大多数地方都进行了标注处理,讲了具体代码的含义和用法

# 依赖库文件仓库链接
source 'https://github.com/CocoaPods/Specs.git'

use_frameworks!
platform :ios, '13.0'
inhibit_all_warnings!
# OC组件库Module化
use_modular_headers!

####### Debug
eval IO.read('podext.rb')
# 能否进行开发 开发环境-true 封包打包-false
@enable_develop = true
########

# 基础公共组件
def basePod
  # 拉取最新版本
  pod 'SnapKit'
  pod 'JXBanner'

  # 拉取指定版本
  pod 'Alamofire', '5.4.4'

end

# 业务组件
def businessPod
  # 开发组件 developmentPod1
  pod 'developmentPod1', :git=>'https://github.com/author/developmentPod1.git',:branch=>'feature/0.0.1',:dev=>'..'

  # 拉取指定版本 
  pod 'developmentPod2', '0.0.2'
  pod 'developmentPod3', '0.0.3'
  pod 'developmentPod4', '0.0.1'

end

#正式版 只有生产环境
target 'projectName' do
  basePod
  businessPod
end

#内部调试版本
target 'projectNameDebug' do
  basePod
  businessPod
  pod 'LookinServer'
end

# hook 配置, 在 preparing 阶段后,install 之前
pre_install do |installer|
    
end

# hook 配置,在 pod install 之后,可用于修改工程配置等
post_install do |installer|
#   用于解决Signing for "xxx" requires a development team. select a development team in the signing & capabilities editor报错 该错误为Pod库中包含Test的Target,需要设置Team ID
#
#  installer.generated_projects.each do |project|
#    project.targets.each do |target|
#        target.build_configurations.each do |config|
#            config.build_settings["DEVELOPMENT_TEAM"] = "TeamID"
#         end
#    end
#  end
end

三、podfile文件部分代码讲解

1.OC组件库Module化:

现在很多常见常用的第三方组件是用OC进行编写的,但是现在很多新业务、新项目都采用Swift开发,这就会面临一个OC组件库进行Module化,方便Swift代码进行调用使用,所以在podfile文件中添加了use_modular_headers!。具体的技术细节讲解可参考网易云音乐编写的Swift混编Module化实践

2.组件区分

在podfile文件中分出了两个组件(基础组件和业务组件),基础组件通常为公司已经积累许久的内部基础组件库,业务组件通常为当前业务正在开发和使用的组件库。这样在平时更新组件库的版本时会更为便捷,大多变更的均为业务组件库版本号

# 基础公共组件
def basePod
  # 拉取最新版本
  pod 'SnapKit'
  pod 'JXBanner'

  # 拉取指定版本
  pod 'Alamofire', '5.4.4'

end

# 业务组件
def businessPod
  # 开发组件 developmentPod1
  pod 'developmentPod1', :git=>'https://github.com/author/developmentPod1.git',:branch=>'feature/0.0.1',:dev=>'..'

  # 拉取指定版本 
  pod 'developmentPod2', '0.0.2'
  pod 'developmentPod3', '0.0.3'
  pod 'developmentPod4', '0.0.1'

end
3.target区分

在podfile文件中分出了正式环境和开发环境两个target,当然在正式开发的时候可以还有更多的环境区分,这边举例仅以两个环境进行举例。在不同的环境拥有着不同的作用和功能,所以有时候需要引入不同的测试库,比如开发环境需要引入LookinServer进行UI查看

4.podext.rb文件

当你运行该podfile文件时,可能会报错找不到podext.rb文件,这个是个ruby文件用于一些组件拉取方法和避免发生拉取报错,如果你需要该文件,可以关注并私信我

参考资料:我所理解的CocoaPods
如果该文章对你有所帮助,可以点赞、收藏并关注一下!后续会持续更新更多技术内容

相关推荐

  1. CocoaPodsPodfile文件模板

    2023-12-16 05:46:06       44 阅读
  2. cocoapods 常用命令

    2023-12-16 05:46:06       32 阅读
  3. CocoaPods 安装使用

    2023-12-16 05:46:06       22 阅读
  4. CocoaPods使用详解

    2023-12-16 05:46:06       11 阅读
  5. CocoaPods使用详解

    2023-12-16 05:46:06       8 阅读
  6. iOS cocoapods 升级

    2023-12-16 05:46:06       9 阅读
  7. Homebrew、RVM、ruby、cocoapods

    2023-12-16 05:46:06       10 阅读
  8. Cocoapods版本更新与切换

    2023-12-16 05:46:06       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 05:46:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 05:46:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 05:46:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 05:46:06       18 阅读

热门阅读

  1. MySQL DQL

    MySQL DQL

    2023-12-16 05:46:06      37 阅读
  2. 【C#】Microsoft C# 之 LINQ 查询语法视频学习总结

    2023-12-16 05:46:06       30 阅读
  3. React Hooks学习指北

    2023-12-16 05:46:06       34 阅读
  4. 下载文件 后端返回给前端 response header 响应头

    2023-12-16 05:46:06       44 阅读
  5. Vue3+Ts项目——登录页面跳转到首页

    2023-12-16 05:46:06       40 阅读
  6. 7.3 lambda函数

    2023-12-16 05:46:06       35 阅读
  7. 快速入门HTML

    2023-12-16 05:46:06       31 阅读
  8. Mysql和Oracle的区别

    2023-12-16 05:46:06       32 阅读
  9. 【Rust日报】2023-12-14 Mojo 也要支持生存期

    2023-12-16 05:46:06       38 阅读
  10. QT之QGraphicsProxyWidget

    2023-12-16 05:46:06       30 阅读
  11. Qt图像处理-基于OpenCv的图像二值化处理

    2023-12-16 05:46:06       39 阅读
  12. Error: Required request body is missing:……

    2023-12-16 05:46:06       35 阅读