「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# 開發組件 developmentPod1pod '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' dobasePodbusinessPod
end#內部調試版本
target 'projectNameDebug' dobasePodbusinessPodpod '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# 開發組件 developmentPod1pod '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
如果該文章對你有所幫助,可以點贊、收藏并關注一下!后續會持續更新更多技術內容

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于mdadm創建與管理軟raid

環境 VMware workstation 17pro CentOS Linux release 7.9.2009 (Core) ——內存8G,16core ——硬盤系統盤100G ——四塊20G硬盤 注意事項 1、在沒有操作系統的情況下,可以在裝系統時將磁盤做軟raid,然后使用軟raid作為系統盤 2、在重構時&a…

虛幻商城 道具匯總

文章目錄 載具Vehicle Variety Pack(車輛品種包)Vehicle Variety Pack Volume 2(車輛品種包第 2 卷)家具Free Furniture Pack(免費家具包)Old West - VOL 1 - Interior Furniture(舊西部 - 第1卷 - 家具包)Old West VOL.3 - Travel Supplies and Goods(舊西部 - 第3卷…

容器及容器調度(云)

在云計算中,容器是一種輕量級、可執行的軟件包,它包含應用程序及其全部依賴項,包括庫、二進制文件、配置文件等。容器與虛擬機不同,因為它們不需要包含完整的操作系統;相反,所有容器都共享主機操作系統的內…

SQL中的三值邏輯:TRUE、FALSE 和 UNKNOWN。

在SQL中,通常采用三值邏輯處理條件表達式的真值。這種邏輯是基于三種可能的真值狀態:TRUE、FALSE 和 UNKNOWN。 TRUE(真): 表示條件為真或成立。 FALSE(假): 表示條件為假或不成立。…

7 Linux 內核移植

一、編譯 ST 的 Linux 系統 1. 壓縮源碼 首先先下載 ST 官方源碼,之前章節已經下載過了,直接輸入以下命令: cd linux/atk-mpl/stm32mp1-openstlinux-5.4-dunfell-mp1-20-06-24/sources/arm-ostl-linux-gnueabi/linux-stm32mp-5.4.31-r0/ 然…

【Python】np.hstack()和np.vstack函數詳解和示例

本文通過函數原理和運行示例,對np.hstack()和np.vstack函數進行詳解,以幫助大家理解和使用。 更多Numpy函數詳解和示例,可參考 【Python】Numpy庫近50個常用函數詳解和示例,可作為工具手冊使用 目錄 np.hstack()函數解析運行示例…

EasyExcel使用模板導出復雜Excel

1&#xff09;添加easyexlce的依賴 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.0.0-beta1</version> </dependency>2&#xff09;添加excel模板文件 實現的效果&#xff1a;…

打包less

接HTML和css之后對less進行打包 1.在之前的文件夾里的src文件夾創建一個less文件 2.打開webpack——>中文文檔——>Loader——>less—loader 3.復制下圖代碼到終端 4.復制下圖內容到webpack.config.js腳本 5.在src里的js文件年引入less文件 6.在終端運行 npm run te…

助力工業生產質檢,基于輕量級yolov5-seg開發構建工業場景下滾珠絲杠傳動表面缺陷分割檢測系統

AI賦能工業生產是一個強有力的方式&#xff0c;在我們之前的系列博文中也有很多相應的開發實踐&#xff0c;感興趣的胡都可以自行移步閱讀&#xff0c;本文的核心思想就是想要基于輕量級的實例分割模型來開發構建工業場景下的滾珠絲杠傳動表面缺陷分割檢測系統&#xff0c;首先…

STM32-固件打包部署

STM32-固件打包部署 Fang XS.1452512966qq.com STM32固件輸出 工程上使用Keil開發STM32軟件&#xff1b;在調試過程中&#xff0c;可直接編譯下載&#xff1b;例如bootloader和APP&#xff0c;在調試時&#xff0c;可以直接下載2次&#xff1b;但是工程上&#xff0c;需要大…

力扣經典面試題——合并區間

合并區間 https://leetcode.cn/problems/merge-intervals/description/?envTypestudy-plan-v2&envIdtop-interview-150 這題思維量一般但比較考察API的使用。 1、數組的自定義排序 2、數組的初始化定義 3、Arrays轉int 通過重寫Comparator的compare方法來自定義排序規則…

nvm動態管理node.js

nvm 安裝 nvm介紹 &#xff08;1&#xff09;nvm(Node.js version manager) 是一個命令行應用&#xff0c;可以協助您快速地 更新、安裝、使用、卸載 本機的全局 node.js 版本。 &#xff08;2&#xff09;有時候&#xff0c;我們可能同時在進行多個項目開發&#xff0c;而多…

Spring Boot監聽redis過期的key

Redis支持過期監聽&#xff0c;可以實現監聽過期數據&#xff0c;實現過程如下 1、pom依賴 <!-- Redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></depend…

Django講課筆記02:Django環境搭建

文章目錄 一、學習目標二、相關概念&#xff08;一&#xff09;Python&#xff08;二&#xff09;Django 三、環境搭建&#xff08;一&#xff09;安裝Python1. 從官方網站下載最新版本的Python2. 運行安裝程序并按照安裝向導進行操作3. 勾選添加到路徑復選框4. 完成安裝過程5.…

【計算機網絡】UDP報文詳解

目錄 一. UDP協議概述 二. UDP報文格式 首部 三. UDP的緩沖區 一. UDP協議概述 UDP——用戶數據報協議&#xff0c;是傳輸層的一個重要協議 基于UDP的應用層協議有&#xff1a;DNS&#xff0c;TFTP&#xff0c;SNMP&#xff0c;NTP 協議全稱默認端口號DNSDomain Name Se…

開源框架Apache NiFi調研

開源框架Apache NiFi調研 NiFi背景介紹一、什么是NiFi1.1 Apache NiFi特點&#xff1a;流管理、易用性、安全性、可擴展的體系結構和靈活的伸縮模型。1.2 Apache NiFi特性1.2 Apache NiFi核心概念1.3架構 二、NiFi的誕生&#xff0c;要致力于解決的問題有哪些&#xff1f;三、為…

SQL 存儲過程觸發器

單個SQL語句 實現不了復雜的實際應用&#xff0c;需要一組SQL語句來實現&#xff0c;創建函數&#xff0c;以方便應用。 存儲過程 可編程的函數&#xff0c;完成特定功能編寫的SQL語句&控制語句的預編譯的集合&#xff0c;再次調用時不再編譯。 優點&#xff1a; 允許標…

軟件開發經常出現的bug原因有哪些

軟件開發中出現bug的原因是多方面的&#xff0c;這些原因可能涉及到開發流程、人為因素、設計問題以及其他一系列因素。以下是一些常見的導致bug的原因&#xff1a; 1. 錯誤的需求分析&#xff1a; 不正確、不完整或者模糊的需求分析可能導致開發人員誤解客戶的需求&#xff0…

AICore 帶來了 Android 專屬的 AI 能力,它要解決什么?采用什么架構思路?

前言 Google 最近發布的 Gemini 模型在全球引起了巨大反響&#xff0c;其在多模態領域的 Video demo 無比震撼。對于 Android 開發者而言&#xff0c;其中最振奮人心的消息莫過于 Gemini Nano 模型將內置到 Android 系統當中&#xff0c;并開放給開發者使用。 事實上&#xf…

IDEA 2023.3 start failed 啟動失敗修復

發現是 RestfulToolkit 插件有沖突導致的&#xff0c;刪除插件后成功啟動 open ~/Library/Application\ Support/JetBrains/IntelliJIdea2023.3/plugins參考&#xff1a;https://youtrack.jetbrains.com/issue/IDEA-340080/Critical-startup-error-after-upgrading-to-Intelli…