美文网首页
【10】iOS开发·私有库的创建

【10】iOS开发·私有库的创建

作者: 风青殇 | 来源:发表于2020-06-12 17:21 被阅读0次

    一、创建本地私有库

    1、项目目录中,新建文件夹Lib进入,然后执行pod lib create 库名,根据提示进行模板创建库;例:

    pod lib create FXGBaseKit
    

    2、第一步完成之后,会有个子工程,可在Classes文件夹中存放代码,Assets中存放图片资源等;

    (注1:加载图片资源中,需要在XXX.podspec文件中配置,具体格式后面会贴上来;)

    (注2:图片加载方式也不能再用[UIImage imageName:@""],需要指定bundle加载图片)

    3、抽离代码,在原有项目工程中的Podfile文件中导入本地路径,例:

    pod 'FXGBaseKit', :path => 'Lib/FXGBaseKit'
    

    (注:新版的cocoapods需要在开头加上source路径)

    新版Podfile格式范例:

    use_frameworks!
    
    platform :ios, '9.0'
    
    source 'https://github.com/CocoaPods/Specs.git'
    
    target 'XXX' do
    
      pod 'FXGBaseKit', :path => 'Lib/FXGBaseKit(你的本地私有库路径)'
    
      target 'XXX_Tests' do
    
        inherit! :search_paths
    
      end
    
    end
    

    备注:本地私有库的创建比较简单,此处不再过多叙述。

    二、创建远程私有库

    1、工程创建

    pod lib create FXGBaseKits
    

    2、新建远程仓库(GitHub/GitLab/coding等)

    3、将远程索引库关联到本地

    pod repo (查看本地已关联仓库源)
    
    pod repo add  本地索引库名称 远程索引库仓库地址 (添加关联私有库)
    
    pod repo update 索引库名称 (更新私有库)
    
    pod repo remove 本地索引库名称 (移除私有库)
    

    4、进入到本地项目工程FXGBaseKits中,关联远程仓库

    git remote add origin 你的仓库地址
    
    git add .
    
    git commit -m "commit"
    
    git push origin master 或者 git push -u origin master 【这个一般是第一次提交的时候】
    

    5、修改XXX.podspec文件,简易的格式及名词解释(请勿直接复制):【此处为注释】

    Pod::Spec.new do |s|
    
      s.name             = 'FXGBaseKits'【库名】
    
      s.version          = '0.1.0' 【版本号】
    
      s.summary          = '' 【短描述】
    
      s.description      = <<-DESC
    
    (此处需要填写)【详细的描述,需要比短描述长】
    
                           DESC
    
      s.homepage         = 'https://github.com/xxx' 【你仓库所在的网页网址,不是仓库地址】
    
      s.license          = { :type => 'MIT', :file => 'LICENSE' }【MIT许可证,一般不用动】
    
      s.author           = { 'xxx' => 'xxx' } 【作者名,默认会给你,一般也不需要动】
    
      s.source           = { :git => 'https://github.com/xxx.git', :tag => s.version.to_s } 【你仓库的Git地址】
    
      s.ios.deployment_target = '9.0' 【系统版本号】
    
      s.source_files = 'xxx/Classes/*' 【代码存放的路径,是相当于XXX.podspec的路径,一定要正确,否则会报错】
    
      # s.resource_bundles = {
    
      #   'XXX' => ['XXX/Assets/*.png'] 【这是图片资源的路径】
    
      # }
    
      # s.public_header_files = 'Pod/Classes/**/*.h' 【在这个属性中声明的.h文件能够使用<>方法联想调用】
    
      # s.frameworks = 'UIKit', 'MapKit' 【依赖系统的动态库】
    
      # s.vendored_framework = 'XXX.framework' 【依赖非系统的动态库,未验证】
    
      # s.libraries = 'XXX.a' 【依赖系统的静态库】
    
      # s.vendored_libraries = 'XXX.a' 【依赖非系统的静态库,例:libWeiboSDK.a】
    
      s.dependency 'AFNetworking', '~> 4.0.1' 【依赖的pod库】
    
    end
    

    注:当有多级库的时候,可分解出多个子库,只需要将s.source_files = 'xxx/Classes/*'注释,在XXX.podspec添加以下代码:

      s.subspec 'Category' do |c|【此处"||"中的字母不能写大写的,注意】
    
          c.source_files = 'FXGBaseKit/Classes/Category/**/*'【子库的路径】
    
      end
    
      s.subspec 'General' do |g|
    
          g.source_files = 'FXGBaseKit/Classes/General/**/*'【子库的路径】
    
      end
    
      s.subspec 'Utils' do |u|
    
          u.source_files = 'FXGBaseKit/Classes/Utils/**/*'【子库的路径】
    
      end
    
      s.subspec 'Vendor' do |v|
    
          v.source_files = 'FXGBaseKit/Classes/Vendor/**/*'【子库的路径】
    
      end
    

    6、验证XXX.podspec文件,终端执行:

    pod lib lint XXX.podspec --allow-warnings【本地验证】
    
    pod spec lint XXX.podspec --allow-warnings 【远程验证】
    

    注 ①:若使用了静态库,需要在后面加 --use-libraries;

    注 ②:当依赖了其他第三方库,需要在--allow-warnings 前面加上 --source='https://xxx.git【你的仓库地址】, https://github.com/CocoaPods/Specs.git'

    7、当XXX.podspec验证通过后,给远程master分支添加tag

    git tag 0.1.0 【添加本地tag】
    
    git push --tags 【push到远程tag】
    
    git tag -d 0.1.0 【删除本地tag】
    
    git push origin :0.1.0 【删除远程tag】
    
    git tag 【查看tag列表】
    

    8、给master设置完tag之后,执行发布命令

    pod repo push XXX XXX.podspec --allow-warnings 
    

    注 ①:若使用了静态库,需要在后面加 --use-libraries;

    注 ②:当依赖了其他第三方库,需要在--allow-warnings 前面加上 --source='https://XXX.git【你的仓库地址】, https://github.com/CocoaPods/Specs.git'

    9、发布完成之后,私有库便已经创建完毕,附上使用方法:

    新建工程,编辑Podfile,编辑完毕后,pod install或者pod update;

    注意:私有库需要指定git的写法,否则可能会install不成功,备注:当第一次使用的时候,需要先更新本地索引库;

    pod repo update 【更新所有的索引库】
    
    pod repo update xxx 【指定更新某个索引库】
    
    指定git的写法
    
    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'
    
    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :branch => 'dev'
    
    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '3.1.1'
    
    pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :commit => '0f506b1c45'
    
    指定podspec的写法
    
    pod 'AFNetworking', :podspec => '~/Desktop/AFNetworking/AFNetworking.podspec'
    
    指定subspecs的写法(这也是subspec的另一个用法)
    
    pod 'MyThirdparty', '~> 0.0.1', :subspecs => ['Sparta', 'GotyeSDK', 'TalkingData', 'Tingyun', 'BaiduPanorama']
    

    相关文章

      网友评论

          本文标题:【10】iOS开发·私有库的创建

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