CocoaPods - podspec私有库配置

2023-05-16

工程引用

Podfile中添加以下cocoaPods指令,在终端输入pod install构建

source 'https://github.com/zhengmiaokai/Specs.git'

pod 'JPUtils', '1.0.2'

本地存放spec目录

~/.cocoapods/repos/

pod install --repo-update (更新本地repo,并pod install)

pod install --no-repo-update (pod install,不更新repo)

pod repo update(默认更新所有repo)

pod repo update ~/.cocoapods/repos/master(更新指定Specs)

git仓库创建

1)工程git目录

2)spec目录(通过pod repo自动生成)

podspec文件配置

name:私有库包名

s.name = 'JPUtils'

version:当前版本号

s.version = '1.0.1'

platform:最低支持系统

s.platform = :ios, '8.0'

source:git地址、版本号

s.source = { :git => 'git地址', :tag => '1.0.1' }  
#等价于:s.source = { 'git' => 'git地址', 'tag' => '1.0.1' }

requires_arc:是否为arc

s.requires_arc = true

source_files:代码源文件路劲

s.source_files = 'JPUtils/utils/required/*.{h.m}', 'JPUtils/utils/optional/*.{h.m}'  

s.source_files = 'JPUtils/utils/**/*.{h.m}'

 public_header_files:公共头文件路径

s.public_header_files = 'JPUtils/public/header/*.h'  

libraries:系统libs

s.libraries = 'sqlite3', 'stdc++'  
#等价于:s.libraries = ['sqlite3', 'stdc++']

vendored_libraries:内置libs路径

s.vendored_libraries = 'JPUtils/utils/required/tool.a', 'JPUtils/utils/optional/common.a'   

s.vendored_libraries = 'JPUtils/utils/**/*.a'  

resources: 资源文件地址

s.resources = 'JPUtils/utils/resource.bundle'

s.resources = 'JPUtils/utils/*.bundle'

frameworks:系统frameworks

s.frameworks = ['UIKit', 'Foundation']

vendored_frameworks:内置frameworks路径

s.vendored_frameworks = 'JPUtils/utils/required/tool.framework', 'JPUtils/utils/optional/common.framework'

s.vendored_frameworks = 'JPUtils/utils/**/*.framework' 

dependency:关联第三方库、组件库,s.dependency  'MKNetwork', '~> 1.0.2'版本号在Podfile中声明,避免多个podspec出现不一致的情况

s.dependency  'AFNetworking'   
s.dependency  'MKNetwork'

 valid_archs:当前私有库支持的处理器

valid_archs = ['x86_64', 'arm64e', 'arm64', 'armv7s', 'armv7']

# arm64e:iPHone XS,iPHone XR,iPhone 11, ...
# arm64:iPhone5s,iPhone6、7、8,iPhone6、7、8 Plus,iPhone X,...
# armv7s:iPhone5, iPhone5C,iPad4,...
# armv7:iPhone 3GS,iPhone4,iPhone 4s,iPad,iPad2,iPad3,...

pod_target_xcconfig:当前私有库的Build Settings配置

s.pod_target_xcconfig = { :OTHER_LDFLAGS => '-lObjC', 
  :CLANG_CXX_LANGUAGE_STANDARD => 'c++11', 
  :CLANG_CXX_LIBRARY => 'libc++', 
  :VALID_ARCHS => 'x86_64 arm64e arm64 armv7s armv7' }

# :OTHER_LDFLAGS等价于'OTHER_LDFLAGS'
# :VALID_ARCHS等价于'VALID_ARCHS'

user_target_xcconfig: pod库的Build Settings配置

s.user_target_xcconfig = { 'OTHER_LDFLAGS' => '-lObjC', 
  'CLANG_CXX_LANGUAGE_STANDARD' => 'c++11', 
  'CLANG_CXX_LIBRARY' => 'libc++', 
  'VALID_ARCHS' => 'x86_64 arm64e arm64 armv7s armv7' }

# user_target_xcconfig:对工程中所有 pod 的设置
# pod_target_xcconfig:对当前 pod 的设置
# 如果多个 pod 的 podspec 中对 user_target_xcconfig 同⼀个值进行了设置,会存在冲突的问题

subspec :pod子模块配置

s.subspec 'catogerys' do |ss|
   ss.source_files = "component/catogerys/**/*.{h,m}"
   ss.dependency "JPUtils"
end

s.subspec 'controllers' do |ss|
   ss.source_files = "component/controllers/**/*.{h,m}", "component/utils/**/*.{h,m}"
   ss.dependency "component/catogerys"
end

备注:文件路径中 * 表示文件名通配符, ** 表示文件夹递归匹配;数组用逗号隔开(如: s.libraries = 'a', 'b' 或者 s.libraries = ['a', 'b'] )。

podspec文件校验、上传

1)创建远程仓库 

https://github.com/zhengmiaokai/Specs.git 

2)使用远程仓库URL在repos中添加repo 

pod repo add zhengmiaokai  https://github.com/zhengmiaokai/Specs.git

pod repo remove zhengmiaokai(移除repo

3)检验podspecs文件的有效性 

pod spec lint ~/desktop/zhengmiaokai/JPUtils/JPUtils.podspec --use-libraries --allow-warnings --verbose --sources='私有库-git地址,https://github.com/CocoaPods/Specs.git'

pod spec lint ~/desktop/zhengmiaokai/JPUtils/JPUtils.podspec --use-libraries --allow-warnings --verbose --sources='https://github.com/CocoaPods/Specs.git,https://github.com/zhengmiaokai/Specs.git'

4)podspec文件添加到远程仓库 

pod repo push zhengmiaokai ~/desktop/zhengmiaokai/JPUtils/JPUtils.podspec --use-libraries --allow-warnings --verbose --sources='私有库-git地址,CocoaPods-git地址'

pod repo push zhengmiaokai ~/desktop/zhengmiaokai/JPUtils/JPUtils.podspec --use-libraries --allow-warnings --verbose --sources='https://github.com/CocoaPods/Specs.git,https://github.com/zhengmiaokai/Specs.git'

备注:--use-libraries (使用libraries和frameworks)、--allow-warnings(忽略警告)、--verbose(定位错误)--sources='specs地址'(默认为CocoaPods,多个地址用逗号隔开)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CocoaPods - podspec私有库配置 的相关文章

随机推荐

  • springboot整合mybatis-plus详细教程(附分页插件简单用法)

    lt mybatis plus依赖 gt lt dependency gt lt groupId gt com baomidou lt groupId gt lt artifactId gt mybatis plus boot starte
  • 关于微信开放平台配置-网站应用

    官方的使用说明 xff1a https open weixin qq com cgi bin showdocument action 61 dir list amp t 61 resource res list amp verify 61
  • 10-9 查询年龄18-20之间的学生信息(MSSQL)

    分数 5 全屏浏览题目 切换布局 作者 张庆 单位 集美大学 本题目要求编写SQL语句 xff0c 检索出 stu表中年龄在18 20之间的学生记录 注意 计算年龄时以年计算 xff0c 不考虑出生月份 假定当前日期为 2020 03 01
  • Python-面向对象常用方法(初始化与str)

    一 初始化方法 xff1a 当使用类名 xff08 xff09 创建对象时 xff0c 会 自动 执行以下操作 xff1a 1 为对象在内存中 分配空间 创建对象 2 为对象的属性 设置初始值 初始化方法 init 初始化方法 就是 ini
  • 在CentOS8上实现私有CA和证书申请

    私有CA创建的参看配置文件 etc pki tls openssl cnf root 64 y zilong cat etc pki tls openssl cnf CA default dir 61 etc pki CA 所有证书存放的目
  • (原创)iOS中cell高度自适应方法UITableView设置

    一 xff1a 修改tableView 的heightForRowAtIndexPath代理方法 xff0c 每一行都设置为动态高度 span class hljs built in CGFloat span tableView span
  • VGG数据预处理

    参考文献 Very Deep Convolutional Networks for Large Scale Image Recognition 本文的目的 目标检测 语义分割等领域都会涉及到预训练模型 xff0c 一般是在ImageNet上
  • 关于pip将第三方包下载到本地的相关方法

    1 原因 很多客户的场景无法连外网 xff0c 需要将第三方包导入安装 2 命令 国内源 xff1a 中国科学技术大学 https pypi mirrors ustc edu cn simple 豆瓣 xff1a http pypi dou
  • Debian6.02 终端中文设置--FBTerm + ucimf

    目前字符终端的中文支持有cce zhcon和最新的fbterm xff0c cce和zhcon已经停止更新维护 xff0c 只有fbterm目前在不断开发更新中 xff0c 而且在我的系统上一运行zhcon就死机 xff0c 所以fbter
  • 苹果电脑桌面文件不见了怎么恢复

    苹果电脑桌面文件不见了怎么恢复 xff1f 不少使用苹果电脑的用户都会遇到这样一个问题 xff0c 就是自己存放在桌面上的文件突然都不见了 xff0c 怎么也找不到 xff0c 导致无法打开各种文件 xff0c 那么苹果电脑桌面文件不见了怎
  • H5资源本地化策略 - iOS

    一 资源拦截 映射 为了增强用户浏览H5页面的体验 xff0c 减少页面白屏时间 xff0c 实现 js css image 等资源文件 xff0c 以及页面html文件的本地映射 xff08 非首次打开wkwebview本身有302缓存机
  • IOS WKWebView与Cookie问题梳理

    1 WK 脚本注入Cookies信息 代码示例 Ajax iframe请求配置cookies WKWebViewConfiguration configuration if configuration configuration 61 WK
  • 如何在iOS应用中更好的调试H5页面

    前言 在APP中 xff0c H5页面可以通过加载vConsole脚本 xff0c 来查看页面的日志 异常 网络加载 设备信息 储存信息 元素 但是 xff0c JS脚本加载于页面Dom挂载之后 xff0c 这样就会使得这一区间的信息丢失
  • 10-17 查询没有选修‘C语言‘课程的学生(MSSQL)

    分数 10 全屏浏览题目 切换布局 作者 张庆 单位 集美大学 本题目要求编写SQL语句 xff0c 检索出没有选修 39 C语言 39 课程的学生记录 xff0c 输出结果集按照学号升序排序 提示 xff1a MSSQLServer 评测
  • xcworkspace结合cocoapods的应用说明

    一 主工程Project 1 xff09 创建 App Project 2 xff09 添加CocoaPods的 Podfile 文件 source 39 https github com CocoaPods Specs git 39 pl
  • 基于OC端的Bridge-API组件化应用

    前言 在移动应用开发中 xff0c 组件化可以提高代码的模块化和重用性 xff0c 降低耦合度 当下大部分APP都至少包含一到两种Hybrid框架 xff0c H5基本是必要的 xff0c 还可能叠加React Natvie Weex或Fl
  • IOS内存管理

    一 堆与栈 1 栈区 stack xff1a 由编译器自动分配释放 xff0c 函数的参数值 xff0c 局部变量等值 2 堆区 heap xff1a 一般由开发人员分配释放 xff0c 若不释放 xff0c 则可能会引起内存泄漏 NSSt
  • TestFlight应用

    一 内部测试与外部测试的区别 内部测试只能添加100名成员不需要beta审核 xff08 beta审核 xff1a 通过审核未发布上线 xff09 xff0c 外部测试能添加10000名成员需要beta审核 二 内部测试构建 1 在App
  • 通用链接-Universal Link

    前言 通用链接与URL Scheme的用途类似 xff0c 主要是实现从外部唤醒App xff0c 并执行某些操作 xff08 如 xff1a 打开指定页面 xff09 由于使用URL Scheme xff08 wechat path qu
  • CocoaPods - podspec私有库配置

    工程引用 Podfile中添加以下cocoaPods指令 xff0c 在终端输入pod install 构建 source 39 https github com zhengmiaokai Specs git 39 pod 39 JPUti