Travis CI(Jenkins)+xcodebuild+fir(蒲公英)

需要的工具(这里暂时只介绍Travis CI的使用,Jenkins套用即可)

本地只需要安装travis命令行工具
安装travis:

gem install travis
Travis CI+github

需要在项目根目录新建.travis.yml,后面一一讲解干啥的。


Travis CI(Jenkins)+xcodebuild+fir(蒲公英)_第1张图片
.travis.yml文件内容
  • 基础设置
language: objective-c
osx_image: xcode8.3

这些的作用就不多说了,不明白-->部分简单配置参考
后面是Travis CI的编译周期请参考

  • 安装fir命令行
beforre_install:
- gem install fir-cli --no-ri --no-rdoc
  • 解密证书,创建keychain,创建缓存目录
before_script:
- "./scripts/encd.sh" #解密证书
- "./scripts/add-key.sh" #创建keychain
- "./scripts/clear_cache.sh" #创建缓存目录

下面分别看看每一个都是干啥的

  • ./scripts/encd.sh
    encd文件内容

    这三个文件是什么东西,就多说了。
    我不希望服务器上直接放的真实的证书,所以用openssl对证书进行了加密。加解密参考这里
    -k参数就是我们唯一用到的命令,在.travis.yml同级目录执行,如何使用参考这里
#使用的时候可以用$key获取值,这个由Travis CI维护,我们不用操心
travis encrypt key="value" --add

执行完后在.travis.yml文件末尾会自动添加

env:
  global:
  - secure: qcZu5n4CR6PSVYnyLok9pSYIEN5u+Bt7+207Yd16eDWZSXFpNLmEfrKNolk1lZ/
  • ./scripts/add-key.sh(容易出错的地方)参考这里,security的使用参考
security create-keychain -p travis ios-build.keychain
security default-keychain -s ios-build.keychain

security unlock-keychain -p travis ios-build.keychain
security set-keychain-settings -t 3600 -l ~/Library/Keychains/ios-build.keychain

security import ./scripts/certs/apple.cer -k ~/Library/Keychains/ios-build.keychain -T /usr/bin/codesign
security import ./scripts/certs/Dev_Certificates.cer -k ~/Library/Keychains/ios-build.keychain -T /usr/bin/codesign
security import ./scripts/certs/Dev_Certificates.p12 -f pkcs12 -k ~/Library/Keychains/ios-build.keychain -P $DEV_P12_PASSWORD -T /usr/bin/codesign

security set-key-partition-list -S apple-tool:,apple: -s -k travis ios-build.keychain

security find-identity -p codesigning ~/Library/Keychains/ios-build.keychain
security list-keychains

mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles
cp ./scripts/profile/$PROFILE_NAME ~/Library/MobileDevice/Provisioning\ Profiles

这里重点说下apple.cer是我们自己的开发证书的根证书需要单独下载或者从电脑上导出下载地址,其他的可以参考链接,不想看可以直接拷贝改改参数即可。

  • ./scripts/clear_cache.sh
out_path=./xcode_build_ipa_dev
mkdir -p ${out_path}

创建包存放路径,没什么好说的。

  • 打包
script:
- xcodebuild clean -project ./XXXXXX.xcodeproj -sdk iphoneos -configuration $CONFIGURATION -alltargets
- xcodebuild archive -project ./XXXXX.xcodeproj -scheme XXXXX -configuration $CONFIGURATION -archivePath ./xcode_build_ipa_dev/XXXXX.xcarchive

先清缓存,再打包,将XXXXX替换成自己的。

  • 导出ipa,上传fir(如何上传蒲公英自行百度)
xcodebuild -exportArchive -archivePath ./xcode_build_ipa_dev/XXXXX.xcarchive -exportPath ./xcode_build_ipa_dev -exportOptionsPlist ./scripts/xcodebuild_dev_config.plist

fir p ./xcode_build_ipa_dev/XXXXXX.ipa -T MyToken -c 发布debug版本




    teamID
     XXXXX 
    method
    development


将XXXXX替换成自己的。

  • ./remove-key.sh
security delete-keychain ~/Library/Keychains/ios-build.keychain
security find-identity -p codesigning ~/Library/Keychains/ios-build.keychain
security list-keychains

删除keychain

  • 项目目录结构


    Travis CI(Jenkins)+xcodebuild+fir(蒲公英)_第2张图片
    目录结构
  • 结果展示

    Travis CI(Jenkins)+xcodebuild+fir(蒲公英)_第3张图片
    Travis CI结果

    经过31次修改终于成功了_
    Travis CI(Jenkins)+xcodebuild+fir(蒲公英)_第4张图片
    fir上传成功

  • 参考及资源
    https://www.objc.io/issues/6-build-tools/travis-ci/
    https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/security.1.html
    https://docs.travis-ci.com/user/languages/objective-c/
    https://docs.travis-ci.com/user/customizing-the-build/
    http://www.361way.com/openssl-encrypt-file/2692.html
    https://docs.travis-ci.com/user/encryption-keys
    https://docs.travis-ci.com/user/common-build-problems/
    https://developer.apple.com/certificationauthority/AppleWWDRCA.cer

你可能感兴趣的:(Travis CI(Jenkins)+xcodebuild+fir(蒲公英))