美文网首页
Cocoapods公共库的创建和使用

Cocoapods公共库的创建和使用

作者: 夏先生的单子 | 来源:发表于2020-09-04 16:27 被阅读0次

    一、 本地新建一个索引库,并上传到远程仓库上

    首先上git新建一个索引库

    注意上图中红色箭头所指向的地方要勾选上,不然后面推送索引库有可能报以下错误

    克隆到本地后执行 pod repo add[索引库名称][索引库地址],如下

    pod repo add SCICategory0 https://github.com/XXXXX/SCICategory0.git

    这时候 进入 ~/.cocoapods/repos 中就可以看到与远程仓库关联的本地索引库

    这时候一个私有的索引库就创建完毕。

    二、利用Cocoapods命令创建子模块,把业务代码搬到子项目上,把子项目上传到远程仓库取

    在GitHub上新建一个子模块SCICategory0(注意:一定要同名,不然后面会很麻烦)

    利用Cocoapods官方命令 pod lib create [模块名称] 创建子模块

    pod lib create SCICategory0    

    这时候会问你几个问题:

    1.What platformdoyou want touse?[iOS/macOS]//将模块应用到什么平台上

    2.What languagedoyou want touse?[Swift/ObjC]// 模块的开发语言

    3.Would you like to include a demo applicationwithyour library?[Yes/No]//是否生成demo应用,这里建议生成,因为你可以在这里进行测试

    4.Which testing frameworks will youuse?[Specta/Kiwi/None]//是否集成测试框架

    5.Would you like todo view based testing?[Yes/No]6.What is your class prefix?//开发前缀 

    执行完毕会自动打开一个Xcode工程,生成以下文件:

    这时候把我们将自己的代码的类放到Classes文件夹,删掉其中的ReplaceMe.m文件,保证项目运行成功。

    cd到Example工程里面pod install后,就可以进行开发测试了。

    开发完成后,我们需要查看SFCommonKit.podspec这个文件了,文件内容如下

    # # Be sure to run `pod lib lint SCICategory0.podspec' to ensure this is a # valid spec before submitting. # # Any lines starting with a # are optional, but their use is encouraged # To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html # Pod::Spec.new do |s| s.name = 'SCICategory0' s.version = '0.1.0' s.summary = 'A short description of SCICategory0.' # This description is used to generate tags and improve search results. # * Think: What does it do? Why did you write it? What is the focus? # * Try to keep it short, snappy and to the point. # * Write the description between the DESC delimiters below. # * Finally, don't worry about the indent, CocoaPods strips it! s.description = <<-DESC TODO: Add long description of the pod here. DESC s.homepage = 'https://github.com/lujunjing/SCICategory0' # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'lujunjing' => '370634018@qq.com' } s.source = { :git => 'https://github.com/lujunjing/SCICategory0.git', :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' s.ios.deployment_target = '8.0' s.source_files = 'SCICategory0/Classes/**/*' # s.resource_bundles = { # 'SCICategory0' => ['SCICategory0/Assets/*.png'] # } # s.public_header_files = 'Pod/Classes/**/*.h' # s.frameworks = 'UIKit', 'MapKit' # s.dependency 'AFNetworking', '~> 2.3' end

    其中,下面几个内容需要注意的

    s.name 模块名称,将来pod install的名称是依据这个来的

    s.version 模块版本,将来pod install的版本是依据这个来的

    s.homepage 模块的主页

    s.source 模块的远程仓库地址

    s.frameworks 引用的系统库,如果用了静态库 ,验证的时候需要加--use-libraries

    s.dependency 引用的第三方,如有多个,可以重复声明

    三、检查完podspec确认无误后,cd到根目录文件,就可以就可以上传到远程仓库上了

    1、git add .

    2、git commit -m "初始化"

    3、git remote add origin [远程仓库地址]

    4、git push --set-upstream origin master

    注明:

    (1)、第4步通常不管用。

    (2)、README.md文件是库说明文件,记录说明库功能、更新内容等。

    (3)、github库上的README.md是新建库是必须勾选的,本地的README.md是新建项目是默认的(强行删除的话,工程运行崩溃),所以git push前需要git pull把远端仓库代码拉下来,解决冲突、合并文件,否则会报错。但是网上各种教程均无效。

    (4)、目前只找到一种方法,git push -u origin master -f (因为 github 上的版本和本地版本会产生冲突,可以加上 -f 参数强制提交:)

    这时候刷新github,发现库已经更新:

    上传成功后需要加tag标志,注意一下这个tag标志需要与上面说到的s.version里面的版本号保持一致

    5、git tag 0.1.0(版本号必须与.podspec中记录的保持一致)

    6、git push --tags

    四、发布到cocoapods 上进行托管

    1、验证podspec文件,使用 pod spec lint 或 pod lib lint 验证podspec 文件 如果出现warn获告,则在命令行后加--allow-warnings来忽略所有警告即可, 如: pod spec lint --allow-warnings

    pod lib lint SCICategory0.podspec --allow-warnings

    等待一段时间,如果返回信息是 passed validation. 表示验证通过。如下:

    2、发布 输入 pod trunk push --allow-warnings命令来发布到cocoapods上

    (创建Pod账号 通过终端指令来操作: pod trunk registerxxx@live.cn'username' -verbose 可以使用 pod trunk me 来查看自己的账号信息,如果没有账号的话需要先注册一下—)

    3、使用pod search 搜索自己的库 直接在终端输入 pod search XXX 如果搜不到可能是发布到pod远程库成功了,但是本地库没更新导致的,所以用了pod repo update 更新本地库 然后用 pod search XXX --simple 再次搜索 (注:--simple是只搜索库名字)

    使用方法:

    1、Podfile文件中pod 'SCICategory0'

    2、pod install

    3、如果出现以下报错,说明说本机的本地库太老了。。你要更新一下子:pod repo update,实际是本地 更新整个.cocoapods下的所有库

    4、更新完后,再pod install。

    搞定

    相关文章

      网友评论

          本文标题:Cocoapods公共库的创建和使用

          本文链接:https://www.haomeiwen.com/subject/hmazsktx.html