pod存起来看看

2017-05-18  本文已影响0人  YoungMonk

创建一个私有的podspec包括如下那么几个步骤:

1.创建并设置一个私有的Spec Repo。2.创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址。3.创建Pod所对应的podspec文件。4.本地测试配置好的podspec文件是否可用。5.向私有的Spec Repo中提交podspec。6.在个人项目中的Podfile中增加刚刚制作的好的Pod并使用。7.更新维护pod spec。

创建并设置一个私有的Spec Repo

创建一个仓库https://github.com/TRZXDev/TRZX_Repositories

屏幕快照 2017-01-16 13.55.34.png

本地添加私有源

pod repoadd[Private Repo Name] [GitHub HTTPScloneURL]---------------------------------------------------------pod repoaddTRZX_Repositories https://github.com/TRZXDev/TRZX_Repositories

此时如果成功的话cd到~/.cocoapods/repos目录下就可以看到TRZX_Repositories这个目录了。

屏幕快照 2017-01-16 14.04.26.png

至此第一步创建私有Spec Repo完成。

创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址

创建一个Xcode项目 TRZX_Test

在TRZX_Test项目下创建名为TRZX_Test的文件夹,后面我们需要做成私有pod的文件均放在该文件夹下

在TRZX_Test文件下面添加TRZX_Test文件

屏幕快照 2017-01-17 13.47.04.png

在gitHub新建一个project名为TRZX_Test项目

屏幕快照 2017-01-17 13.48.12.png

关联本地项目推送至gitHub

echo"# TRZX_Test">> README.md

git init

git add .

git commit -m"first commit"

git remote add origin https://github.com/TRZXDev/TRZX_Test.git

git push -u origin master

假如我们的源是origin,分支是master,那么我们 需要这样写需要知道,我们的源可以是本地的路径

git pull origin master--allow-unrelated-histories

因cocoaPods强制添加开源许可文件,在TRZX_Test工程目录下创建FILE_LICENSE

echoMIT>FILE_LICENSE

创建podspec文件

podspeccreate TRZX_Test

执行命令vim .TRZX_Test.podspec编辑podspec文件

0.s.summary

s.summary="Testing  TRZX_Test."

1.s.description 添加描述

s.description  = <<-DESCTestingPrivatePodspec.DESC

2.s.platform 最低支持iOS版本

# s.platform    = :ioss.platform    =:ios,"9.0"

3.s.homepage

s.homepage="https://github.com/TRZXDev/TRZX_Test"

4.s.license

#s.license="MIT (example)"s.license= { :type =>"MIT", :file =>"FILE_LICENSE"}

5.s.source

s.source      = { :git=>"https://github.com/TRZXDev/TRZX_Test.git", :tag=>"#{s.version}"}

6.s.source_files

s.source_files="CRProtocolManager","CRProtocolManager/**/*.{h,m}"

退出编辑执行命令

编辑完podspec文件后,需要验证一下这个文件是否可用,如果有任何WARNING或者ERROR都是不可以的,它就不能被添加到Spec Repo中,不过xcode的WARNING是可以存在的,验证需要执行一下命令

podliblint

当你看到

屏幕快照 2017-01-17 14.34.50.png

时,说明验证通过了,不过这只是这个podspec文件是合格的,不一定说明这个Pod是可以用的,我们需要在本地做一下验证

把刚才的修改Add到本地

gitadd.git commit -m'编辑.podspec'

添加tag 一定要和podspec中的version一致

gittag0.0.1

把刚才添加的tag提交上去

git push originmaster--tags

屏幕快照 2017-01-17 14.28.28.png

把TRZX_Test项目添加到准备工作中的私有源仓库TRZX_Repositories

pod repopushTRZX_Repositories TRZX_Test.podspec --verbose--allow-warnings

执行成功后

pod search TRZX_Test应该就能搜索到了

如果发现搜索不到刚才的组件

rm ~/Library/Caches/CocoaPods/search_index.json

然后在进行搜索就可以搜索到了

注意

此时由于你当前工程B依赖的工程是私有库,于是会报错:

- ERROR | [iOS]unknown: Encountered anunknownerror

pod sepc lint 文件名.podspec --sources='http://[privateLibName]/cocoaspecs.git,https://github.com/CocoaPods/Specs.git'

报错 ···

error:include of non-modular header inside framework module ··· [-Werror,-Wnon-modular-include-in-framework-module]

解决办法:在pod lib lint 或者 pod spec lint 以及 pod repo push ....时候加上 --use-libraries

podliblint--use-libraries#或者pod spec lint --use-libraries#当然,在提交的时候也要加上pod repo push --use-libraries#或者pod repo push TRZX_Repositories TRZX_Test.podspec --verbose --allow-warnings --use-libraries

上一篇 下一篇

猜你喜欢

热点阅读