美文网首页
创建私有化Pod

创建私有化Pod

作者: 洛少城 | 来源:发表于2020-05-03 01:11 被阅读0次
创建私有化Pod有两种方式,根据自己的情况来选择适合自己的方式来创建

1.在新建的项目中创建私有化Pod库:

进入项目想要存放的目录,使用以下命令:

$ pod lib create "MyTestPod"
  1. 执行命令后终端会问你四个问题,1.选择需要的平台;2.选择用到项目语言;3.是否需要创建一个示例工程;4.选择一个测试框架;5.是否基于View测试;6.类的前缀;问题参看官方文档,问完这4个问题他会自动执行pod install命令创建项目并生成依赖,完成后自动打开窗口。
xingkunkun:FlutterForFW admin$ pod lib create "MyTestPod"
Cloning `https://github.com/CocoaPods/pod-template.git` into `MyTestPod`.
Configuring MyFlutterPod template.
------------------------------
To get you started we need to ask a few questions, this should only take a minute.

1. What platform do you want to use?? [ iOS / macOS ]
 > ios
2. What language do you want to use?? [ Swift / ObjC ]
 > objc
3. Would you like to include a demo application with your library? [ Yes / No ]
 > no
4.Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > none
5. Would you like to do view based testing? [ Yes / No ]
 > no
6.What is your class prefix?
 > ZF

Running pod install on your new library.

2.托管代码到Git服务器:因为podspec文件中获取Git版本控制的项目还需要tag号,所以我们要打上一个tag 根据自己项目的需要修改好然后,提交代码到远端仓库。

$ git add .
$ git commit -s -m "Initial Commit of Library"
$ git remote add origin http://xxx.....git 
$ git push origin master $ git tag -m "first release" "0.1.0"
$ git push --tags     #推送tag到远端仓库
$ git tag -m "first release" "0.1.0"
$ git push --tags     #推送tag到远端仓库

3.编辑MyTestPod.podspec文件,它是一个Ruby的文件,把编辑器的格式改成Ruby就能看到语法高亮,并在后面以注释的形式说明每个字段的含义,没有涉及到的字段可以去官方文档查阅,下面贴上修改的podspec文件模板级注释:

Pod::Spec.new do |s|
  s.name             = "MyTestPod"    #名称
  s.version          = "0.1.0"             #版本号
  s.summary          = "Just Testing."     #简短介绍,下面是详细介绍
  s.description      = <<-DESC
                       Testing Private Podspec.

                       * Markdown format.
                       * Don't worry about the indent, we strip it!
                       DESC
  s.homepage         = "https://github.com/xxx/xxxxx/p/podTestLibrary"                           #主页,这里要填写可以访问到的地址,不然验证不通过
  # s.screenshots     = "www.example.com/screenshots_1", "www.example.com/screenshots_2"           #截图
  s.license          = 'MIT'              #开源协议
  s.author           = { "wtlucky" => "wtlucky@foxmail.com" }                   #作者信息
  s.source           = { :git => "https://github.com/xxx/MyTestPod.git", :tag => "0.1.0" }      #项目地址,这里不支持ssh的地址,验证不通过,只支持HTTP和HTTPS,最好使用HTTPS
  # s.social_media_url = 'https://twitter.com/'                       #多媒体介绍地址

  s.platform     = :ios, '7.0'            #支持的平台及版本
  s.requires_arc = true                   #是否使用ARC,如果指定具体文件,则具体的问题使用ARC

  s.source_files = 'Pod/Classes/**/*'     #代码源文件地址,**/*表示Classes目录及其子目录下所有文件,如果有多个目录下则用逗号分开,如果需要在项目中分组显示,这里也要做相应的设置
  s.resource_bundles = {
    'PodTestLibrary' => ['Pod/Assets/*.png']
  }                                       #资源文件地址

  s.public_header_files = 'Pod/Classes/**/*.h'   #公开头文件地址
  s.frameworks = 'UIKit'                  #所需的framework,多个用逗号隔开
  s.dependency 'AFNetworking', '~> 2.3'   #依赖关系,该项目所依赖的其他库,如果有多个需要填写多个s.dependency
end

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

$ pod lib lint

值得注意的是:
1.如果允许警告,在pod lib lint命令后面跟上--allow-warnings,否则也无法链接通过;
2.如果需要打印出具体的编译信息可跟上--verbose,可清楚的看到一些提示信息;
3.如果项目中用到了一些三方库则需要跟上--use-libraries命令才能通过;

如果链接通过后会看到有编译通过的提示字样;

 -> MyTestPod (0.1.0)

PodTestLibrary passed validation.

5.验证无误就可以进入下一步了,本地测试podspec文件,可以创建一个新的项目,在这个项目的Podfile文件中直接指定刚才创建编辑好的podspec文件,看是否可用。在Podfile中可以这样编辑,有两种方式

source 'https://github.com/CocoaPods/Specs.git'
#source 'https://cdn.cocoapods.org/'

platform :ios, '9.0'

#1.指定路径
pod 'MyTestPod', :path => '~/code/Cocoapods/podTest/MyTestPod' 

#2.指定podspec文件     
pod 'MyTestPod', :podspec => '~/code/Cocoapods/podTest/MyTestPod/PodTestLibrary.podspec'  

然后执行pod install命令安装依赖,打开项目工程,可以看到库文件都被加载到Pods子项目中了,不过它们并没有在Pods目录下,而是跟测试项目一样存在于Development Pods/PodTestLibrary中,这是因为我们是在本地测试,而没有把podspec文件添加到Spec Repo中的缘故。

6.在项目中编写代码,测试库文件无误后就可以开始下一步了,提交podspec到Spec Repo中。

# pod repo add "[Private Repo 别名]" "[GitHub HTTPS 仓库地址]"
$ pod repo add "podspecName" "https://github.com/xxx/MyTestPod.git"

#前面是本地Repo名字 后面是podspec名字
$ pod repo push "podspecName" "MyTestPod.podspec" 

如果不执行pod repo add xxx这一步, 可直接执行:

$ pod repo push "https://github.com/xxx/MyTestPod.git" "MyTestPod.podspec"

如果添加别名错了,可以进行以下命令删除:

$ pod repo remove "podspecName"

7.至此,我们的这个组件库就已经制作添加完成了,使用pod search命令就可以查到我们自己的库了。

$ pod search MyTestPod

-> MyTestPod (0.1.0)
   Just Testing.
   pod 'MyTestPod', '~> 0.1.0'
   - Homepage: https://github.com/xx/xxx/p/MyTestPod
   - Source:   https://github.com/xx/MyTestPod.git
   - Versions: 0.1.0 [MyTestPod repo]

如果在项目中使用时安装无法找到,则可以先更新pod:

$  pod update

#然后再安装:  
$ pod install

2.在现有项目中创建私有化Pod库:

如果是已经有了现成的项目,那么就需要给这个项目创建一个podspec文件,进入项目的跟目录,执行以下命令来创建podspec文件:

$ pod spec create "podspecName" "gitUrl"

注意这一步只是在项目的目录中生成一个podspec文件,生成成功后,后面的步骤全部按照上面 「新建的项目」流程的第二部依次执行即可。

相关文章

网友评论

      本文标题:创建私有化Pod

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