需要的工具(這里暫時(shí)只介紹Travis CI的使用供璧,Jenkins套用即可)
本地只需要安裝travis命令行工具
安裝travis:
gem install travis
Travis CI+github
需要在項(xiàng)目根目錄新建.travis.yml,后面一一講解干啥的拷姿。
- 基礎(chǔ)設(shè)置
language: objective-c
osx_image: xcode8.3
這些的作用就不多說了匀们,不明白-->部分簡單配置參考
后面是Travis CI的編譯周期請參考
- 安裝fir命令行
beforre_install:
- gem install fir-cli --no-ri --no-rdoc
- 解密證書缴淋,創(chuàng)建keychain,創(chuàng)建緩存目錄
before_script:
- "./scripts/encd.sh" #解密證書
- "./scripts/add-key.sh" #創(chuàng)建keychain
- "./scripts/clear_cache.sh" #創(chuàng)建緩存目錄
下面分別看看每一個(gè)都是干啥的
- ./scripts/encd.sh
encd文件內(nèi)容
這三個(gè)文件是什么東西泄朴,就多說了重抖。
我不希望服務(wù)器上直接放的真實(shí)的證書,所以用openssl
對證書進(jìn)行了加密祖灰。加解密參考這里
-k參數(shù)就是我們唯一用到的命令钟沛,在.travis.yml同級目錄執(zhí)行,如何使用參考這里
#使用的時(shí)候可以用$key獲取值局扶,這個(gè)由Travis CI維護(hù)恨统,我們不用操心
travis encrypt key="value" --add
執(zhí)行完后在.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
這里重點(diǎn)說下apple.cer是我們自己的開發(fā)證書的根證書需要單獨(dú)下載或者從電腦上導(dǎo)出下載地址三妈,其他的可以參考鏈接畜埋,不想看可以直接拷貝改改參數(shù)即可。
- ./scripts/clear_cache.sh
out_path=./xcode_build_ipa_dev
mkdir -p ${out_path}
創(chuàng)建包存放路徑畴蒲,沒什么好說的悠鞍。
- 打包
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替換成自己的咖祭。
- 導(dǎo)出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 發(fā)布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
-
項(xiàng)目目錄結(jié)構(gòu)
目錄結(jié)構(gòu) -
結(jié)果展示
Travis CI結(jié)果
經(jīng)過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