美文网首页
私有库pod搭建与应用

私有库pod搭建与应用

作者: 何颀 | 来源:发表于2024-06-05 18:10 被阅读0次

    首先来说说什么是私有库

    顾名思义,就是你的私人代码仓库,而不是开源出去让大家都能看到并参与开发的项目。私有仓库可以进行权限控制,只有拥有权限的人才能访问并修改它,也就是我们所说的合作者。
    私有库不在cocoaPods的官方Repo仓库中,而是在自建的spec repo中,库索引是以 *.podspec文件形式存在,自建的spec repo放在路径~/.cocoapods/repos下,与master同级,其链接的远程仓库可以是公开的,也可以是私有的。

    创建pod库

    创建私有库有两种方案,第一种方案手动创建 podspec与自己私有仓库进行关联,第二种直接使用cocoapods创建

    方案一

    首先选择在xcode里新建framework项目,并且在公司仓库gitLab新建两个远程仓库(索引库、代码库)用git将本地framework项目推入远端
    在用终端本地执行

    #用于创建一个新的 Pod(即一个 iOS 或 macOS 的库或框架)的规范文件(`.podspec` 文件)
    pod spec create PodName
    

    在.podspec里面进行编辑,稍后会详细讲解 podspec文件内容
    最后在终端执行查看当前pod文件是否规范

    #用于检查一个 Pod 的规范文件(`.podspec` 文件)是否符合规范和要求
    pod spec lint PodName.podspec
    
    

    如果编译成功,符合规范要求就可以提交pod

    pod repo push 索引库 podName.podspec--verbose--use-libraries--allow-warning
    

    方案二

    1.直接使用cocoapods创建

    pod lib create PodName
    

    2.然后依次输入,执行即可

    What platform do you want to use?? [ iOS / macOS ]
    > iOS
    What language do you want to use?? [ Swift / ObjC ]
    > ObjC
    Would you liketo include a demo application with your library? [ Yes / No ]
    > YES
    Which testing frameworks will you use? [ Specta / Kiwi / None ]
    > None
    Would you like to do view based testing? [ Yes / No ]
    > No
    What is your class prefix?
    > xx
    

    3.添加库文件。
    成功后会创建出一个pod_test工程,目录结构如下

    image.png

    将编写好的一些文件拉入pod_test/classes中。

    image.png

    Example是创建Pods工程时生成的一个工程,用于验证添加的库文件是否能正常使用。Example目录下Podfile文件中自动设置了pod_test依赖,如下:

    target 'pod_test_Example' do
      pod 'pod_test', :path => '../'    #自动添加了
    

    cd Example文件夹下,终端执行pod install或pod update,安装pod_test依赖就可以查看在项目中应用了

    提交pods库到github上。打标签,推送到远程。

    重点:tag打的版本号必须和podspec中的s.version值相同

    git tag
    git tag '0.1.0'
    git tag
    git push origin 0.1.0
    
    删除本地tag  git tag -d 0.1.0
    删除远端tag  git push origin :refs/tags/0.1.0
    

    .podspec文件配置

    #
    # Be sure to run `pod lib lint SYCoreKit.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             = 'xxxxx'  #搜索的关键词,注意这里一定要和.podspec的名称一样
      s.version          = '0.0.1' #版本号,每一个版本对应一个tag
      s.summary          = "iOS框架" #项目简介
      s.description      = "iOS框架" #pod详细描述
      s.homepage         = 'http://114.116.222.206:9002/zhangchao/siyucorekit.git' #项目主页地址
      # s.screenshots     = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
      s.license          = { :type => 'MIT', :file => 'LICENSE' } #许可证
      s.author           = { 'superMan' => 'xxxxxxxx' }#作者
      s.source           = { :git => 'http://xxx.git', :tag => s.version.to_s }#项目的地址
      s.social_media_url = 'https://twitter.com/xxx'#作者社交地址
    #  s.pod_target_xcconfig = { 'VALID_ARCHS' => 'arm64'} 是修改当前pod工程中的项目设置
    #  s.user_target_xcconfig = { 'VALID_ARCHS' => 'arm64','EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64'}  是修改当前用户工程中的项目设置
      s.ios.deployment_target = '12.0' #支持的pod最低版本
      s.static_framework = true #动态库模式pod
      s.requires_arc     = true # 是否启用ARC
      s.source_files = 'SYCoreKit/Classes/**/*' #需要包含的源文件
      
      # s.resource_bundles = {
      #   'SYCoreKit' => ['SYCoreKit/Assets/*.png']
      # } 资源文件
    
      # s.public_header_files = 'Pod/Classes/**/*.h' #标记公共头文件列表
      s.ios.frameworks = "UIKit", "Foundation" #支持的系统框架
      s.dependency 'YYModel', '1.0.4'#三方依赖
    end
    
    

    检查规范

    pod spec lint PodName.podspec 
    

    提交pod

    pod repo push 索引库 podName.podspec--verbose--use-libraries--allow-warning
    

    相关文章

      网友评论

          本文标题:私有库pod搭建与应用

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