zoukankan      html  css  js  c++  java
  • pod 私有 pod 库创建和使用

    1、创建私有的 pod 仓库,就像 GitHub 这样的仓库一样,大家都把代码托管到这个里面。

    - 1、在自己公司的 git 服务器或者其他平台的 git 服务器上创建私有远程仓库,我是用公司的 git 服务器,名字叫 MySpecs ,克隆地址为:https://XXX/XXX/XXX/MySpecs.git

    - 2、将私有的远程仓库copy到本地。

    pod repo add MySpecs https://XXX/XXX/XXX/MySpecs.git

    - 3、执行完毕后,在目录:/Users/xx/.cocoapods/repos 下会多出来一个MySpecs文件夹,至此私有的远程仓库部分就完成了。

    -注意,这个私有的远程仓库生成之后,只做此一步就好。

    2、创建私有的 pod 组件库,这里创建一个网络库为例

    - 1、打开终端,执行命令来创建一个名为 MyNetworkManager 的Pod库空模板。

    pod lib create MyNetworkManager

    - 下面是选项的选择

    - Pod库空模板就自动创建成功了。

    - 2、在公司的 git 服务器上面创建 MyNetworkManager 的 git 远程仓库,克隆地址是:https://XXX/XXX/XXX/MyNetworkManager.git 。

    - git 远程仓库这一步大家都很熟悉了,这里要注意的是不要创建 LICENSE 和 README.md 和 .gitignore 文件,不然下面关联远程仓库的时候有问题。

    - 在终端 MyNetworkManager 目录下执行下面命令,关联本地仓库到远程仓库,推送已经创建的仓库

    git remote add origin https://XXX/XXX/XXXMyNetworkManager.git
    git push -u origin master
    

     - 更换 .gitignore 文件

    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'

    - 提交本次修改。

    - 3、删除ReplaceMe文件,将原项目中需要封装文件复制到 MyNetworkManager/MyNetworkManager/Classes中,在拖入到项目里面

    - 4、修改 MyNetworkManager.podspec 文件

    Pod::Spec.new do |s|
      s.name             = 'MyNetworkManager'
      s.version          = '0.1.0'
      s.summary          = '网络模块'
    
      s.homepage         = 'https://XXX/XXX/XXX'
      
      s.license          = { :type => 'MIT', :file => 'LICENSE' }
      s.author           = { 'szb' => 'zhongbo.shen@2339.com' }
      s.source           = { :git => 'https://XXX/XXX/XXX/MyNetworkManager.git', :tag => s.version.to_s }
      # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
    
      s.ios.deployment_target = '8.0'
    
      s.source_files = 'MyNetworkManager/Classes/**/*'
      
    end

    - 5、做正常的 git 提交命令了,这里的 tag 版本号要和上面的 s.version 版本号一致

    // Example目录下
    pod install
    
    // 回到项目根目录下
    git add .
    git commit -am"此次内容"
    git push
    git tag 0.1.0
    git push origin --tags

    - 6、校验 MyNetworkManager.podspec 文件

    pod spec lint --allow-warnings

    - 检验完成发现没有错误,就说明没有问题。可以进行最后一步了。

    3、上传 MyNetworkManager.podspec 文件到我们的私有远程仓库 MySpecs

    pod repo push MySpecs MyNetworkManager.podspec --allow-warnings 

    - 上面命令对 MyNetworkManager.podspec 文件做了两个操作:一个是将其推送到私有的远程仓库,可以去 公司的 git 上面 MySpecs 仓库中查看;另一个是将其 copy 到私有的本地仓库,这个可以去目录:/Users/xx/.cocoapods/repos/MySpecs 下查看到。

    至此私有的 Pod 库也就完成了,可以在终端执行 pod search MyNetworkManager 来查询它,接下来就是在原项目中使用它了。

    4、使用私有 pod 库

    - 1、在项目里面,自己的 source 源放到 gitHub 源前面。这样避免有相同名字的库名字,会优先拉取自己的私有 pod 库
    - 2、公司内部其他成员在使用之前需要执行下面命令,将私有的远程仓库拉到本地,然后就可以正常使用了。
    
    
    pod repo add MySpecs https://XXX/XXX/XXX/MySpecs.git

    5、注意问题

    - 1、有时候会出现一些莫名其妙的问题,可以先试一下清楚缓存
    pod cache clean MyNetworkManager --all

     - 2、.podspec错误 – source_files`模式与任何文件不匹配

    - 3、项目添加Cocoapods支持遇到的坑

    - 4、添加 frameworks 和

    s.frameworks = "MobileCoreServices", "SystemConfiguration"

    - libraries 

    libz.tbd 写成 z ,规则要去除 lib 和后边的.tbd,配置系统 library 这么简写

    s.libraries = "c++", "sqlite3.0", "z"

     -5、 缺少架构 normal i386/normal x86_64

    1. The following build commands failed:
    2. Ld /Users/ywk/Library/Developer/Xcode/DerivedData/App-bbsqamfhzhjciwehdhwasdrwlxod/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/x86_64/Binary/App normal x86_64
    3. Ld /Users/ywk/Library/Developer/Xcode/DerivedData/App-bbsqamfhzhjciwehdhwasdrwlxod/Build/Intermediates.noindex/App.build/Release-iphonesimulator/App.build/Objects-normal/i386/Binary/App normal i386

    解决方法:
    方法一:首先要检查source_files 路径有没有配置对,我的是目录分级时由于有一个路径配置跟其他的重复导致此错误。

    方法二:然后尝试:
    pod lib lint 后添加 --skip-import-validation

    pod repo push 也添加--skip-import-validation
    但可能不通过

    方法三:podspec 文件添加x86_64 i386配置
    s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }

     
  • 相关阅读:
    聊聊Spark的分区、并行度 —— 前奏篇
    深入探讨HBASE
    分布式流平台Kafka
    GeoServer中使用SLD样式
    OpenLayer修改WFS中的要素
    leaflet加载GeoServer的WFS服务
    OL实现属性查询的功能
    OL3实现空间查询的代码示例
    WFS—GetFeature方法
    OpenLayer+Geoserver+postgis实现路径分析
  • 原文地址:https://www.cnblogs.com/shen5214444887/p/13678300.html
Copyright © 2011-2022 走看看