iOS 组件化之创建私有podspec

1.准备工作

  • 先去gitHub创建一个项目存放私有Repo源,空的就可以
  • 本地添加私有源 终端执行命令pod repo add XZRepositories [Repo源url](如果之前并未向gitHub push过文件也没有把SSH公钥保存到gitHub,这时候应该会提示你输入gitHub账号密码)
  • 以上操作完成 cd ~/.cocoapods/repos目录下至少会有2个文件夹 XZRepositories 和 master, master文件下面存放的是公有源文件, XZRepositories*目录下目前是空的,后面会存放我们私有源文件
  • 基本准备工作完成。

2.将项目添加到私有源中

(2.1.1)先将工程提交到git上

  • gitHub新建一个project名字和工程一样
  • 终端cd至项目目录下
  • 建立本地仓库git init
  • 将项目中的所有文件添加到本地仓库中git add .
  • 将add的文件commit到仓库中git commit -m "可随意填写"
  • 执行命令git remote add origin [project在git上url]
  • 上传github之前,要先pull一下git pull origin master
  • 上传代码到github远程仓库git push -u origin master

(2.1.2)可能遇见的问题

error:failed to push some refs to git [url]
解决方案:先执行git pull --rebase origin master,再git push -u origin master

(2.2.1)添加到私有源中

  • 因cocoaPods强制添加开源许可文件执行命令echo MIT>FILE_LICENSE创建名为FILE_LICENSE的文件
  • 创建podspec文件pod spec create 工程名
  • 去打开podspec文件,编辑
    编辑模板:
Pod::Spec.new do |s|
 s.name         = "XZGoodsListModule" # 项目名称
 s.version      = "0.0.1"        # 版本号 与 你仓库的 标签号 对应
 s.license      = { :type => "MIT", :file => "FILE_LICENSE" }
 s.summary      = "goods list" # 项目简介

 s.homepage     = "https://git.coding.net/qing1234/XZGoodsListModule.git" # 仓库的主页
 s.source       = { :git => "https://git.coding.net/qing1234/XZGoodsListModule.git", :tag => "#{s.version}" } #你的仓库地址,不能用SSH地址 
 s.resources    = "XZGoodsListModule/XZGoodsListModule/*.{png,bundle}"  # 如果有bundle包,就要加这句话
 s.source_files = "XZGoodsListModule/XZGoodsListModule/**/*.{h,m}" # 你代码的位置, XZGoodsListModule/*.{h,m} 表示 XZGoodsListModule文件夹下所有的.h和.m文件,不要.{h,m}就是所有文件
 s.requires_arc = true # 是否启用ARC
 s.platform     = :ios, "7.0" #平台及支持的最低版本
 # s.frameworks   = "UIKit", "Foundation" #支持的框架
 s.dependency "XZMediator"  # 依赖库
 s.dependency "XZGoodsModel" # 依赖库
 s.dependency "XZGoodsListModuleCategory" # 依赖库

 # User
 s.author             = { "qing" => "251230890@qq.com" } # 作者信息
 s.social_media_url   = "http://www.jianshu.com/u/2987f5a5790f" # 个人主页

end
  • 看一下你先的tag git tag

  • 添加tag git tag 0.0.1

  • 提交tag git push origin master --tags

  • 把podspec文件提交上去pod repo push [远程库名] [项目名].podspec --verbose --allow-warnings
    pod repo push [远程库名] [项目名].podspec --verbose --allow-warnings 的过程就是:

    1)、验证 [项目名].podspec 文件
    2)、拉取远程版本库 [远程库名]
    3)、添加 [项目名].podspec 到版本库中
    4)、 push 到远程

  • 搜索pod search 项目名

(2.2.2)可能遇见的错误

  • ERROR | file patterns: The source_files pattern did not match any file.
    这是最常见的错误,原因有很多种
    1,pod的网络文件路径不对,所以找不到文件;
    2,git上没有设对应的tag;
    3,pod上没有设置与git tag对应的version;
    解决办法:
$ set the new version to 1.0.0  
$ set the new tag to 1.0.0  (1.0.0要与podspec的version对应)
  • ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for XZMediator depended upon by XZGoodsListModuleCategory) during validation.
    这种错误是你的工程依赖第三方库造成的
    解决办法:
    在提交podspec的命令后面加一个--private 或者 --use-librariespod
    就是这样:
    pod repo push XZRepositories XZGoodsListModuleCategory.podspec --verbose --allow-warnings --private
    或者
    pod repo push XZRepositories XZGoodsListModuleCategory.podspec --verbose --allow-warnings --use-libraries
  • pod search 搜索不到你传的项目
    因为你本地search_index.json文件没有更新
    解决办法:
    前往文件~/Library/Caches/CocoaPods/search_index.json 把search_index.json文件删除,然后再pod search 项目名,之后terminal就会一直显示Creating search index for spec repo 'master'..,接下来就只能一直等了,我反正等了很久很久。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容