美文网首页
远程私有库

远程私有库

作者: coderST | 来源:发表于2017-01-13 07:45 被阅读37次

    swift 需要加publish

    下面所有的操作必须是在自己配置好了cocoapods和git库,如果没有,请安装好在往下面进行

    • 1 创建远程索引库 STFMSpecs ,创建一个项目,填写一个名称,readme不要,gitlone选择oc(疑惑:要是有swift怎么办?)
    • 1.1 配置验证信息 https \ ssh
    • 1.2 我配置的是ssh 在终端输入 ssh-keygen 会出现下面截图
    Paste_Image.png
    • 1.3 打开.pub公有的 把里面的信息粘贴到https://coding.net/user -> 个人设置 - > SSH公钥(名称随便起)然后保存

    • 2 然后输入命令 pod repo add STFMBase git@git.coding.net:CoderST/STFMSpecs.git (其中STFMBase设个就是自己本地索引库的名称)

      • 2.1 输入上面命令 终端会让你输入密码 确认密码 可以不输入 直接回车 ok

      • 2.2 在输入 pod repo 会看到下面的截图

    Paste_Image.png
    • 3 创建远程的工程,纯洁的最好,(只写一个名称就好,其他的都不要写,因为下面在创建本地库的时候用的是cocoapods自带的方法,会创建本地git,如果远程里选中了 mit 或者 gitlone就会在远程生成git 在之后的关联remote的时候就会冲突,) 名称: STFMBase

    • 4 然后创建本地测试代码 可以用下面的命令,让pod直接帮生成好对应的信息,pod lib create EmojiToolModel 然后会有对应的信息,按需要的提示选中就好(这个名称要与远程的项目名称一致)

    屏幕快照 2018-05-29 23.14.09.png
    屏幕快照 2018-05-29 23.13.17.png
    • 5 然后把自己写好的基础类,或者分类等放到Classes 删除这个文件下的ReplaceMe.m 替换自己的文件夹
    屏幕快照 2018-05-29 23.16.42.png
    • 6 然后执行命令到Example目录下,执行pod命令 安装成功(这里测试代码,如果有问题,继续修复Bug,直到没有问题为止)
    屏幕快照 2018-05-29 23.17.46.png
    • 7 修改EmojiToolModel.podspec文件信息(因为最终别人会通过spec文件下载自己的库,所以要更正从一开始从cocoapods下载下来的spec文件)

      • 7.0 psec信息如下


        屏幕快照 2018-05-29 23.19.41.png
      • 7.1 然后在进入Example 的上级目录下,把测试的和base等信息全部上传到远程服务器
        ../

      • 7.2 验证spec文件是否合法
        pod lib lint --allow-warnings

    • 有时候验证会报一大堆错误,原因是 xcodebuild 编译时使用的 Swift 版本和你代码当前使用的版本可能不一样,

    • 这时候就需要指定一下 Swift 版本,指定方法是在 podspec 同目录下创建一个 .swift-version 的文件,在里面写上 Swift 版本即可,例如 4.0 ,

    • 或者 : 在终端输入以下命令也可以创建,创建完以后在执行 pod lib lint 就可以编译通过了。
      如果有swift,则命令如下
      echo "4.0" >> .swift-version

    屏幕快照 2018-05-29 23.22.02.png
    • 出现passed validation代表通过

    • 7.3 本地验证成功后,下一步要远程验证,看到上面的spec文件有一个version版本号,还有source里也有,这里是要和提交的tag号一致
      tag号一致
      先提交代码

      屏幕快照 2018-05-29 23.23.27.png
    • 7.4 然后本地代码和远程代码库进行关联,然后提交

    屏幕快照 2018-05-29 23.25.17.png
    • 7.5 成功之后发现标签页啥都没有,说明我们还没有对当前工程进行打tag标记
    Paste_Image.png
    • 7.6 执行tag命令(注意:此处的tag一定要与spec的版本号一样)
    屏幕快照 2018-05-29 23.26.05.png Paste_Image.png
    • 8 然后在验证远程spec操作
    屏幕快照 2018-05-29 23.27.09.png
    • 9 然后把spec文件提交到自己的私有索引库 前往 -> 个人 -> xiudou -> .cocoapods -> repos ->STFMSpecs中
      pod repo push STFMSpecs EmojiToolModel.podspec --allow-warnings 第一个STFMSpecs是repos下本地索引库的名称 EmojiToolModel.podspec是哪一个spec文件,在远程和本地都添加了对应的spec文件
      STFMSpecs : 是你本地的私有库名称(pod repo命令可以查看到)
      EmojiToolModel.podspec : 就是你自己现在要上传的spec文件
    • 有时候这里也会报另外一个错误 ....not clear说明本地的库不干净 git status查看 在pod repo 找到自己的本地索引库 .gitigore
    .DS_Store
    STFMSpecs/.DS_Store
    

    执行步骤

    pod remove STFMSpecs  (移除索引库)
    pod repo add  STFMSpecsTwo(此处可以改名) https://git.coding.net/CoderST/STFMSpecs.git
    
    # Xcode
    .DS_Store
    #
    build/
    *.pbxuser
    !default.pbxuser
    *.mode1v3
    !default.mode1v3
    *.mode2v3
    !default.mode2v3
    *.perspectivev3
    !default.perspectivev3
    xcuserdata
    *.xccheckout
    *.moved-aside
    DerivedData
    *.hmap
    *.ipa
    *.xcuserstate
    
    # CocoaPods
    #
    # We recommend against adding the Pods directory to your .gitignore. However
    # you should judge for yourself, the pros and cons are mentioned at:
    # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control
    #
    #Pods/
    
    
    特别注意:此操作如果成功后你会很奇怪为什么我只是往本地push关联了,为啥远程自己的索引库就自动有了呢?对的,你在执行pod repo push STFMSpecs EmojiToolModel.podspec这一步的时候,系统会自动的往我们远程的specs管理库中push.

    注意 : 在验证的时候如果引用了第三方的库,有时候会报很多警告,虽然没有错误,但是验证就是不通过,可以在命令后面加上--allow-warnings
    如 : pod repo push STFMSpecs EmojiModel.podspec --allow-warnings

    屏幕快照 2018-05-29 23.29.11.png 屏幕快照 2018-05-29 23.30.29.png Paste_Image.png
    • 10 pod search EmojiToolModel
      屏幕快照 2018-05-29 23.34.58.png
    • 10.1如果以上都没有问题,发现pod search任然搜索不到,可以把本地search_index.json文件删除,重新pod search下载最新的json文件
      用户 -> xd -> 资源库 -> Caches -> CocoaPods -> search_index.json
      或者下面命令
      rm ~/Library/Caches/CocoaPods/search_index.json

    • 11 到此为止基本就搞定了,后面你可以自己新建一个工程,然后pod init 修改podfile文件
      注意一定要加上source ‘……’ ,不然会找不到(可以通过pod repo 来查看),然后执行 pod install 或者 pod update --no-repo-update

    屏幕快照 2018-05-29 23.36.04.png

    相关文章

      网友评论

          本文标题:远程私有库

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