pod 私有 pod 库创建和使用

摘要:
podlibcreateMyNetworkManager-下面是选项的选择-Pod库空模板就自动创建成功了。至此私有的Pod库也就完成了,可以在终端执行podsearchMyNetworkManager来查询它,接下来就是在原项目中使用它了。这样避免有相同名字的库名字,会优先拉取自己的私有pod库-2、公司内部其他成员在使用之前需要执行下面命令,将私有的远程仓库拉到本地,然后就可以正常使用了。
1、创建私有的 pod 仓库,就像 GitHub 这样的仓库一样,大家都把代码托管到这个里面。

- 1、在自己公司的 git 服务器或者其他平台的 git 服务器上创建私有远程仓库,我是用公司的 git 服务器,名字叫 MySpecs ,克隆地址为:https://XXX/XXX/XXX/MySpecs.git

- 2、将私有的远程仓库copy到本地。

pod repo add MySpecs https://XXX/XXX/XXX/MySpecs.git

- 3、执行完毕后,在目录:/Users/xx/.cocoapods/repos 下会多出来一个MySpecs文件夹,至此私有的远程仓库部分就完成了。

-注意,这个私有的远程仓库生成之后,只做此一步就好。

2、创建私有的 pod 组件库,这里创建一个网络库为例

- 1、打开终端,执行命令来创建一个名为 MyNetworkManager 的Pod库空模板。

pod lib create MyNetworkManager

- 下面是选项的选择

pod 私有 pod 库创建和使用第1张

- Pod库空模板就自动创建成功了。

- 2、在公司的 git 服务器上面创建 MyNetworkManager 的 git 远程仓库,克隆地址是:https://XXX/XXX/XXX/MyNetworkManager.git 。

- git 远程仓库这一步大家都很熟悉了,这里要注意的是不要创建 LICENSE 和 README.md 和 .gitignore 文件,不然下面关联远程仓库的时候有问题。

- 在终端 MyNetworkManager 目录下执行下面命令,关联本地仓库到远程仓库,推送已经创建的仓库

git remote add origin https://XXX/XXX/XXXMyNetworkManager.git
git push -u origin master

- 更换 .gitignore 文件

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

- 提交本次修改。

- 3、删除ReplaceMe文件,将原项目中需要封装文件复制到 MyNetworkManager/MyNetworkManager/Classes中,在拖入到项目里面

pod 私有 pod 库创建和使用第2张

- 4、修改 MyNetworkManager.podspec 文件

Pod::Spec.new do |s|s.name             = 'MyNetworkManager's.version          = '0.1.0's.summary          = '网络模块'
  s.homepage         = 'https://XXX/XXX/XXX'
  s.license          = { :type => 'MIT', :file => 'LICENSE'}
  s.author           = { 'szb' => 'zhongbo.shen@2339.com'}
  s.source           = { :git => 'https://XXX/XXX/XXX/MyNetworkManager.git', :tag =>s.version.to_s }
  # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
  s.ios.deployment_target = '8.0'
  s.source_files = 'MyNetworkManager/Classes/**/*'
end

- 5、做正常的 git 提交命令了,这里的 tag 版本号要和上面的 s.version 版本号一致

//Example目录下
pod install

//回到项目根目录下
git add .git commit -am"此次内容"git push
git tag 0.1.0git push origin --tags

- 6、校验 MyNetworkManager.podspec 文件

pod spec lint --allow-warnings

- 检验完成发现没有错误,就说明没有问题。可以进行最后一步了。

3、上传 MyNetworkManager.podspec 文件到我们的私有远程仓库 MySpecs
pod repo push MySpecs MyNetworkManager.podspec --allow-warnings 

- 上面命令对 MyNetworkManager.podspec 文件做了两个操作:一个是将其推送到私有的远程仓库,可以去 公司的 git 上面 MySpecs 仓库中查看;另一个是将其 copy 到私有的本地仓库,这个可以去目录:/Users/xx/.cocoapods/repos/MySpecs 下查看到。

至此私有的 Pod 库也就完成了,可以在终端执行 pod searchMyNetworkManager 来查询它,接下来就是在原项目中使用它了。
4、使用私有 pod 库
- 1、在项目里面,自己的 source 源放到 gitHub 源前面。这样避免有相同名字的库名字,会优先拉取自己的私有 pod 库
- 2、公司内部其他成员在使用之前需要执行下面命令,将私有的远程仓库拉到本地,然后就可以正常使用了。
pod repo add MySpecs https://XXX/XXX/XXX/MySpecs.git
5、注意问题
- 1、有时候会出现一些莫名其妙的问题,可以先试一下清楚缓存
pod cache clean MyNetworkManager --all

- 2、.podspec错误 – source_files`模式与任何文件不匹配

- 3、项目添加Cocoapods支持遇到的坑

- 4、添加 frameworks 和

s.frameworks = "MobileCoreServices", "SystemConfiguration"

- libraries

libz.tbd 写成 z ,规则要去除 lib 和后边的.tbd,配置系统 library 这么简写

s.libraries = "c++", "sqlite3.0", "z"

-5、 缺少架构 normal i386/normal x86_64

  1. The following build commands failed:
  2. Ld /Users/ywk/Library/Developer/Xcode/DerivedData/App-bbsqamfhzhjciwehdhwasdrwlxod/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/x86_64/Binary/App normal x86_64
  3. Ld /Users/ywk/Library/Developer/Xcode/DerivedData/App-bbsqamfhzhjciwehdhwasdrwlxod/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/i386/Binary/App normal i386

解决方法:
方法一:首先要检查source_files 路径有没有配置对,我的是目录分级时由于有一个路径配置跟其他的重复导致此错误。

方法二:然后尝试:
pod lib lint 后添加 --skip-import-validation

pod repo push 也添加--skip-import-validation
但可能不通过

方法三:podspec 文件添加x86_64 i386配置
s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }

免责声明:文章转载自《pod 私有 pod 库创建和使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Charles的HTTPS抓包方法及原理分析[开源] C# 封装 银海医保的接口下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

git(代码仓库)

第1章 git介绍 1.1 参数: 第2章 git管理一个项目 2.1 图示 2.2 cd /项目路径 2.3 git config --globle user.email  "邮箱地址" 2.4 git confgi --globle user.name  'xiaodong' 2.5 git init 2.6 git log 2.7 git statu...

APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)

正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群APPUI设计③群58946771APP设计资源⑤群 386032923欢迎大家加入交流分享)交流和讨论的时候,发现很多新加入群的朋友们,问的最多的问题就是“主流手机界面设计尺寸做多大”?APP设计尺寸规范,知道多少呢?25学堂的老谭应广大群友的要求...

cs模式与bs模式

 关于CS(Client-Server)模式和BS(Browser-Server)模式的水很深,盆地自己也认为对此了解不够透彻,但作为手机客户端设计,如果不对CS、BS做一定程度的了解,是很容易出现一些方向性的错误、走一些弯路抑或在实现性价比上付出过多代价。       本文偏向于基础知识,产品人员很多情况下不仅仅要了解表现、交互,还需要一定程度上了解可实...

.Net Core自动化部署系列(二):使用Jenkins打造镜像发布流水线

一、简介 之前写过一篇关于Jenkins搭配GitLab实现.net core项目自动发布到IIS的博文,比较简单哈,只是个Demo。本篇我们将会使用Jenkins搭配GitLab实现镜像的自动打包和上传,这篇其实是一个铺垫篇,因为后面我们需要使用Jenkins实现kubernetes的发布流水线,即实现镜像的自动化打包和部署。 二、打包镜像 Jenkin...

基于CC2530/CC2430 的温度采集系统--DS18B20

DS18B20是常用的温度传感器。CC2530 采集DS18B20 可以实现温度采集系统等等。 模块链接:https://item.taobao.com/item.htm?id=541308617329 代码使用Zstack 的sample 工程作为基本框架。 主要实现内容:一个节点采集DS18B20并发送到另一个节点,并在节点连接的LCD上显示温度信息。...

【转】关于WannaCry勒索蠕虫的安全预警

【转载】如有侵权或者风险,请及时联系我,我会删除。 自5月12日起一款名为WannaCry的蠕虫勒索软件袭击全球网络,这被认为是迄今为止最巨大的勒索交费活动,影响到近百个国家上千家企业及公共组织。目前国内多家企事业单位相继被攻陷,其中包括中石油加油站、浙江传媒大学、中国计量学院、贺州学院、桂林电子科技大学、桂林航天工业学院、大连海事大学、山东大学等。 一、...