需要的工具(这里暂时只介绍Travis CI的使用,Jenkins套用即可)
本地只需要安装travis命令行工具
安装travis:
gem install travis
Travis CI+github
需要在项目根目录新建.travis.yml,后面一一讲解干啥的。
![](https://img.haomeiwen.com/i2605013/76098b74a797ec0a.png)
- 基础设置
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版本
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>teamID</key>
<string> XXXXX </string>
<key>method</key>
<string>development</string>
</dict>
</plist>
将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结果
经过31次修改终于成功了_
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
网友评论