当前位置: 首页 > 编程日记 > 正文

CocoaPods私有库搭建的记录

前言

随着项目的业务增加以及马甲包进度的跟进,一些重复的独立业务以私有库的方式引入到项目中对于项目进度的开发就显得越发的迫切了,本文主要记录自己搭建私有库时的整个流程,以防后面再次搭建时忘记,方便自己查阅。

整个记录流程中私有库的存储是在码云中,也可以在公司自己的git仓库中,自己选择即可。

私有库的搭建涉及到创建索引库和私有库,这里解释下两者:

索引库:存放spec文件的仓库,找到代码位置的索引。

私有库:存放代码的仓库。

两者像指针和对象的关系,指针中存放对象的地址,可以通过指针找到对象。两个仓库创建后,通过命令行将两者关联起来,这样整个私有库的搭建过程就完成了。

1、创建索引库

创建的这个空的仓库,是用来存放我们自己所有的私有库的 spec 文件, 就如同官方的 https://github.com/CocoaPods/Specs 是用来存放所有官方的 specs 文件一样。

2、将索引库添加到本地cocoapods仓库

通过命令行添加自己的索引库到本地仓库

pod repo add wyonSpec https://gitee.com/wyon_wang/wyon-spec.git

添加完毕后查看本地仓库

以上就创建完成了一个自己的索引仓库,该仓库只存放各组件的索引文件,不存放代码!!!

3、创建工程模板

wyondeMacBook-Pro:~ wyon$ cd /Users/wyon/Desktop/TestProject 
wyondeMacBook-Pro:TestProject wyon$ pod lib create YGTool
Cloning `https://github.com/CocoaPods/pod-template.git` into `YGTool`.
Configuring YGTool template.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.------------------------------To get you started we need to ask a few questions, this should only take a minute.If this is your first time we recommend running through with the guide: - https://guides.cocoapods.org/making/using-pod-lib-create.html( hold cmd and double click links to open in a browser. )What platform do you want to use?? [ iOS / macOS ]> iOSWhat language do you want to use?? [ Swift / ObjC ]> ObjCWould you like to include a demo application with your library? [ Yes / No ]> YESWhich testing frameworks will you use? [ Specta / Kiwi / None ]> NoneWould you like to do view based testing? [ Yes / No ]> NoWhat is your class prefix?> YG_
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
security: SecKeychainSearchCopyNext: The specified item could not be found in the keychain.
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint: 	git branch -m <name>Running pod install on your new library.Analyzing dependencies
Downloading dependencies
Installing YGTool (0.1.0)
Generating Pods project
Integrating client project[!] Please close any current Xcode sessions and use `YGTool.xcworkspace` for this project from now on.
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.[!] Your project does not explicitly specify the CocoaPods master specs repo. Since CDN is now used as the default, you may safely remove it from your repos directory via `pod repo remove master`. To suppress this warning please add `warn_for_unused_master_specs_repo => false` to your Podfile.Ace! you're ready to go!We will start you off by opening your project in Xcodeopen 'YGTool/Example/YGTool.xcworkspace'To learn more about the template see `https://github.com/CocoaPods/pod-template.git`.
To learn more about creating a new pod, see `https://guides.cocoapods.org/making/making-a-cocoapod`.
wyondeMacBook-Pro:TestProject wyon$ 

通过该命令行自动创建一个模板工程,其中包含我们所需的索引文件,格式为.podspec。创建完后会自动打开该工程。

4、添加我们的组件到指定目录

这样我们本地私有库完成,接下来制作远端仓库

5、将本地库上传码云

这里是新创建一个项目,为我们真正存放代码的仓库。
我们可以根据码云中的提示上传模板文件

通过命令行上传组件文件

$ git add .
$ git commit -m '模板工程初始化' 
$ git push -u origin master

之后我们修改下模板工程中的.podspec文件,如下图 

6、验证spec文件

注意这里我们上次的代码一定要走的通,不然会校验失败。

wyondeMacBook-Pro:YGTool wyon$ cd /Users/wyon/Desktop/TestProject/YGTool 
wyondeMacBook-Pro:YGTool wyon$ pod lib lint  --private-> YGTool (1.0.0)- NOTE  | xcodebuild:  note: Using new build system- NOTE  | xcodebuild:  note: Using codesigning identity override: -- NOTE  | xcodebuild:  note: Build preparation complete- NOTE  | [iOS] xcodebuild:  note: Planning- NOTE  | [iOS] xcodebuild:  note: Building targets in parallel- NOTE  | [iOS] xcodebuild:  warning: Skipping code signing because the target does not have an Info.plist file and one is not being generated automatically. (in target 'App' from project 'App')YGTool passed validation.

验证成功后打分支,这里的分支一定要和.podspec文件中的版本号一致

$ git tag 1.0.0
$ git push --tags

7、私有库和索引库建立关联

pod repo push wyonSpec YGTool.podspec

这样就同步好了远程和本地索引库,到这里私有库搭建完毕,可以通过命令行搜索下自己的仓库查看一下

 pod search YGTool



相关文章:

区块链笔记-Hash算法

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链笔记-Hash算法 区块链技术是一系列技术的结合&#xff0c;建立新的技术架构&#xff0c;hash算法是很重要的一块&#xff0c;如果理解不当的…

Thrift源码解析--TBinaryProtocol

本文为原创:http://www.cnblogs.com/leehfly/p/4958206.html&#xff0c;未经许可禁止转载。 关于Tprotocol层都是一些通信协议&#xff0c;个人感觉内容较大&#xff0c;很难分类描述清楚。故打算以TBinaryProtocol为例&#xff0c;分析客户端发请求以及接收服务端返回数据的整…

一篇价值百万的文章:我为什么在22岁辞去年薪150万的工作?

本文转载自http://www.cricode.com/4208.html 作者&#xff1a;奶牛Denny 今天是22岁的最后一天。几个月前&#xff0c;我从沃顿商学院毕业&#xff0c;用文凭上“最高荣誉毕业”的标签安抚了已经年过半百的老妈&#xff0c;然后转头辞去了毕业后的第一份工作&#xff0c;跟一…

电脑温度检测软件哪个好_一般电脑录音软件哪个好?

随着科技的快速发展&#xff0c;为了满足各行各业的音频录制需求&#xff0c;电脑版录音软件也在陆续不断的出现在各大应用市场&#xff0c;与传统的自带音频录制工具相比&#xff0c;电脑版录音软件更加专注的是电脑上的音频录制&#xff0c;它能够将发生在电脑上的一切声音源…

区块链的隐私性

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 我最近看区块链简单介绍的时候会发现有的人就说其有良好的隐私性&#xff0c;但也有人说保护隐私性上有缺陷&#xff0c;今天就简单的对区块链的隐私…

ssh免密连接远程服务器

ssh免密连接远程服务器 借助ssky-keygen和ssh-copy-id工具&#xff0c;通过4个简单的步骤实现无需输入密码登录远程Linux主机 1 生成密钥 通过内置的工具生成RSA算法加密的密钥 ssh-keygen -t rsa 回车默认选项即可&#xff0c;会在当前用户的home文件下生成密钥文件 2 拷贝密钥…

什么是互联网大厂_仅限今天!大厂最热数据分析经典实战项目大公开!

原标题&#xff1a;仅限今天&#xff01;大厂最热数据分析经典实战项目大公开&#xff01;如今&#xff0c;全球早已步入数据时代&#xff0c;随着行业的高速发展&#xff0c;相关岗位缺口已超150万&#xff0c;且薪资超同行业50%。未来十年&#xff0c;数据细分岗位将扩张5倍&…

php教学视频

http://www.52pojie.cn/forum.php?modviewthread&tid283589转载于:https://www.cnblogs.com/dawanxiaobao/p/5703157.html

Go基础编程:作用域

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 Go基础编程&#xff1a;作用域11 小弟初学go语言&#xff0c;感觉作用域的运用还是很广泛的&#xff0c;所以就写上一点&#xff0c;也许有的都是很…

数据分析之CE找数据大法

一&#xff0e;基本介绍 CE的全称为Cheat Engine&#xff0c;是一款内存修改编辑工具&#xff0c;其官网是http://www.cheatengine.org&#xff0c;可以在其官网下载到最新的CE工具&#xff0c;目前最新版本是Cheat Engine6.5。CE同时也是一款开源的工具&#xff0c;使用者可以…

a++浏览器_“公司发给我的职业装太小了,我该怎么和领导说?”哈哈哈哈哈|职业装|uc|浏览器...

GIF打开UC浏览器 查看更多精彩图片GIF打开UC浏览器 查看更多精彩图片GIF打开UC浏览器 查看更多精彩图片GIF打开UC浏览器 查看更多精彩图片GIF打开UC浏览器 查看更多精彩图片GIF打开UC浏览器 查看更多精彩图片GIF打开UC浏览器 查看更多精彩图片打开UC浏览器 查看更多精彩图片GIF…

Go基础编程:延迟调用defer

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 本篇文章所讲的就是go编程中的延迟调用defer&#xff0c;希望对社区的成员有较多的帮助。 1 defer作用 关键字defer ⽤于延迟一个函数、方法或者当…

maven工程插件配置

1 <build>2 <!-- 该级工程会加载插件&#xff0c;放在父工程里 -->3 <plugins>4 <!-- 资源文件拷贝插件 -->5 <plugin>6 <groupId>org.apache.maven.plugins</groupId>7 …

卡巴斯基安全浏览器_卡巴斯基 for windows 全方位安全软件2021注册表清除版

软件介绍最近从来不相信木马的Run同学中招了&#xff0c;wup.exe(俗称矿机木马)&#xff0c;此款木马真可谓厉害&#xff0c;无敌&#xff0c;用过所有方法都无法清理&#xff0c;百度了所有的道道几乎无用&#xff0c;中了此毒&#xff0c;电脑不会有什么特别异常&#xff0c;…

Android通过ksoap2调用.net(c#)的webservice

转载于:https://www.cnblogs.com/Nagisa-Saku/p/5706183.html

●洛谷P3688 [ZJOI2017]树状数组

题链&#xff1a; https://www.luogu.org/problemnew/show/P3688题解&#xff1a; 二维线段树。 先不看询问时l1的特殊情况。 对于一个询问(l,r)&#xff0c;如果要让错误的程序得到正确答案&#xff0c; 显然应该满足l-1位置的值r位置的值&#xff08;或者说两个位置的异或值…

Activity-生命周期

Activity不是什么陌生的东西&#xff0c;作为Android程序媛对Activity再熟悉不过。每当说起Activity总最关注的还是它的生命周期。 1、一张来自谷歌官方文档的Activity的生命周期图&#xff1a; 直接来个MainActivity覆盖上面所有的方法通过log打印方式给大家展现&#xff0c;通…

arial unicode ms字体_5个检测商用字体和免费字体合集的网站

对于做新媒体和设计的小伙伴来说&#xff0c;最恐慌的就是加班、改稿、脱发、没钱...侵权问题了。一个不注意就是律师函警告。正所谓律师函不是不到&#xff0c;只是晚到。所以&#xff0c;皮皮特意为小伙伴们搜集了这5个远离字体侵权的网站&#xff0c;有检测字体版权的&#…

DAPP是什么

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 1 DAPP是什么1 当满足下所有条件的时候&#xff0c;一个应用才可以称为DAPP [if !supportLists]1. [endif]必须是开源、自治并没有一个实体控制着…

JVM学习--(一)基本原理

前言 JVM一直是java知识里面进阶阶段的重要部分&#xff0c;如果希望在java领域研究的更深入&#xff0c;则JVM则是如论如何也避开不了的话题&#xff0c;本系列试图通过简洁易读的方式&#xff0c;讲解JVM必要的知识点。 运行流程 我们都知道java一直宣传的口号是&#xff1a;…

phpexcel导出超过26列解决方案

phpexcel导出超过26列解决方案 原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下: PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,..开始,相应返回返回 A,B,C,...Z,AA,AB,...将列的字母转成数字序号使用,代码如下: PHPExcel_Cell::columnIn…

h5大转盘抽奖源码后台_微信H5互动营销应该要如何做?

现在微信营销的队伍有越来越多的人群&#xff0c;许多的企业品牌都会选择用微信营销&#xff0c;而微信营销这么受欢迎是因为微信拉近了用户与企业品牌的关系。其中H5互动营销是最受欢迎的一种方式&#xff0c;那么微信H5互动营销要如何做呢&#xff1f;企业想要在微信H5营销中…

Solidity语言

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 Solidity语言11 Solidity是以太坊智能合约的编程语言&#xff0c;我自己也是学习了很久&#xff0c;感觉是有些难度&#xff0c;所以需要去认真的去…

同一个类 cannot be cast to_留学热门assignment之 税收筹划类essay

税法和税务筹划一直以来都是热门的行业&#xff0c;由于近些年对于税务人才的需求越来越大&#xff0c;税法专业成为了当下最火爆的留学专业之一。发达国家由于税收和法律体系相对完善&#xff0c;法律的条文相较于其他国家而言也更加的细致和有操作性&#xff0c;因此&#xf…

LeetCode 7. Reverse Integer

问题链接 LeetCode 7 题目解析 给定一个32位有符号整数&#xff0c;求其反转数字。 解题思路 如果是简单反转的话&#xff0c;那这道题就太简单了。题目要求判断溢出问题&#xff0c;32位int类型的范围是-2147483648&#xff5e;2147483647。数字反转过后是有可能超出范围的&am…

Ultra-QuickSort POJ 2299(归并排序)

http://acm.hust.edu.cn/vjudge/contest/124435#problem/D 题意&#xff1a;给出一个长度为n的数列&#xff0c;你每一次可以随意交换其中两个数字的位置。问你至少交换几次&#xff0c;才能使得这个数列是个单调递增数列。 比赛时没做出来&#xff0c;&#xff08;自然&#x…

Geth 控制台使用及 Web3.js 使用实战

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 突然发现没有太多写实战的&#xff0c;所以就写一点自己的拙见&#xff0c;提供给成员一些参考。Geth 控制台&#xff08;REPL&#xff09;实现了所…

Java多线程的同步机制(synchronized)

一段synchronized的代码被一个线程执行之前&#xff0c;他要先拿到执行这段代码的权限&#xff0c;在 java里边就是拿到某个同步对象的锁&#xff08;一个对象只有一把锁&#xff09;&#xff1b; 如果这个时候同步对象的锁被其他线程拿走了&#xff0c;他&#xff08;这个线程…

mouseenter 延迟_桃园台服加速器 电狐加速器带你低延迟玩游戏

桃园是由冰动娱乐自主研发的全球首款运用世界顶级开发引擎Unreal Engine 3的次世代回合制网络游戏。Unreal 3引擎在骨骼动画树、特效渲染、游戏性完善等方面表现杰出&#xff0c;而且游戏中还可以呈现广角纵身大场景&#xff0c;1080P的高清画质将会带给玩家前所未有的视觉震撼…

私有链的特点简单介绍

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 私有链是区块链的一种&#xff0c;它指的是某个区块链的写入权限仅掌握在某个人或某个组织手中&#xff0c;数据的访问以及编写等有着十分严格的权限…