美文网首页
[整理总结] 让你的项目支持carthage

[整理总结] 让你的项目支持carthage

作者: 奴良 | 来源:发表于2018-07-09 23:00 被阅读63次

    前言

    这里我们不在赘述网上一搜一大堆的单独项目上传 carthage ,在这篇文章中主要详细讲解下当你的项目依赖了其他三方库时候,如何上传到 carthage 供别人使用,并且同时支持上传到 cocoapods

    步骤一

    • 创建项目时,我们最好创建 Cocoa Touch Framework 如图所示
      Cocoa Touch Framework
    • 项目名字最好与你这个框架的名字一致(例如我的测试程序叫做ZLTestPods
    • 然后打开项目 File->New->Target 创建一个 single view app (可以叫做 ZLTestPodsDemo 之类的,这一部其实可以省略)

    以下均以我的Demo名字 ZLTestPods 举例

    步骤二

    因为我们要同时支持 cocoapodscarthage,所以我们的项目所依赖的第三方库需要用 carthage 集成进来。

    例如我的测试项目依赖 SDWebImage,我们需要在项目目录下面创建 Cartfile,然后 vi Cartfile 并添加 github "rs/SDWebImage" 并执行 carthage update 或者 carthage update --platform ios

    步骤三

    打开你的项目,创建一个 WorkspaceFile->New->Workspace,创建的这个文件放到你的项目根目录。

    • 然后关掉你原来的项目,在 ZLTestPods.xcworkspace 中把项目 ZLTestPods.xcodeproj 导入进来 (如果不知道怎么导入请自行搜索)

      import
    • 导入三方框架,步骤同上,只不过文件位置在如图所示位置


    步骤四

    如图:


    Manage Schemes

    选中对应 scheme ,勾选 shared

    shared

    步骤五

    注:引用自http://shinancao.github.io/2017/07/16/Project-Design-4/,结尾会有声明该文章都参考了哪些资料

    加入Travis CI

    Travis可以对github上的项目进行持续构建,集成它的步骤也很简单,到官网注册:https://travis-ci.org/,进行github帐号关联,然后在项目里添加 .travis.yml 文件,在该文件中指定编译环境等

    配置这个文件有几个要注意的坑:

    • Travis默认使用xctool进行编译,但是xcode的版本指定的是8.0以上,xctool已经不支持了。需要指定用xcodebuild编译。
    • /Users/travis/.travis/job_stages: line 156: shell_session_update: command not found这个错误可以忽略,如果编译失败,先排查一下其他问题。
    • 如果用Carthage集成第三方库了,要进行Carthage的相关指定。

    我的 .travis.yml 文件如下

    language: objective-c
    osx_image: xcode9.3
    xcode_workspace: ZLTestPods
    xcode_scheme: ZLTestPods
    xcode_sdk: iphonesimulator11.3
    before_install:
      - xcodebuild -showsdks
      - brew update
      - brew outdated carthage || brew upgrade carthage
    before_script:
      - carthage bootstrap
    before_deploy:
      - carthage build --no-skip-current
      - carthage archive $FRAMEWORK_NAME
    script:
        - xcodebuild clean build -sdk iphonesimulator11.3 -workspace ZLTestPods.xcworkspace -scheme ZLTestPods CODE_SIGNING_REQUIRED=NO
    
    

    步骤六

    执行 `carthage build --no-skip-current,如果得到如下结果,便说明carthage编译成功

    build

    步骤七

    打tag,上传 github
    执行 git tag 1.0.0,然后 git push --tags

    上传后,可以新建个项目测试下,如下所示便是成功了


    update

    关于支持cocoapods

    项目支持cocoapods,可以看下我这篇文章,有详细介绍
    贴一下 ZLTestPodspodspec 文件

    Pod::Spec.new do |s|
      s.name         = 'ZLTestPods'
      s.version      = '0.1.9'
      s.summary      = 'test dependency'
      s.homepage     = 'https://github.com/longitachi/ZLTestPods'
      s.license      = 'MIT'
      s.platform     = :ios
      s.author       = {'longitachi' => 'longitachi@163.com'}
      s.ios.deployment_target = '9.0'
      s.source       = {:git => 'https://github.com/longitachi/ZLTestPods.git', :tag => s.version}
      s.source_files = 'ZLTestPods/TestFolder/**/*.{h,m}'
      s.dependency 'SDWebImage'
      s.requires_arc = true
    end
    

    后言

    carthage 还是裁了不少坑的,现在又遇到一个新坑,就是 carthage 安装 GPUImage 时候会报错,暂时还没有解决,后续搜到解决办法后会继续分享。

    感谢如下文章:
    使开源库同时支持CocoaPods和Carthage集成

    相关文章

      网友评论

          本文标题:[整理总结] 让你的项目支持carthage

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