代码放在GitHub上管理,直接使用GitHub action来实现持续集成。
创建action的步骤不详细描述,直接贴出对应的执行文件
name: Deploying
on:
push:
jobs:
deploy:
name: Make a IPA file
runs-on: macOS-latest
steps:
- name: Checkout repository
uses: actions/checkout@v1
# - name: Install gpg
# run: brew install gnupg
- name: Setup provisioning profile
# env:
# IOS_KEYS: ${{ secrets.IOS_KEYS }}
run: ./.github/secrets/decrypt_secrets.sh
- name: Archiving project
#env:
#PR_NUMBER: $(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH")
run: ./.github/scripts/archive_app.sh
- name: Exporting .ipa
run: ./.github/scripts/export_ipa.sh
if: success()
run: ./.github/scripts/publish_fir.sh
因为是测试,触发条件我是在push这个动作的时候触发,证书我是放在了对应的文件夹下,因为是私有库我没有进行加密,需要加密的同学使用gpg加密,具体操作可以Google下。
archive_app.sh 、export_ipa.sh 、publish_fir.sh,这三个脚本分别对应的是编译,导出ipa包,上传三方管理平台。
archive_app.sh (工程名可以设个全局变量)
set -eo pipefail
xcodebuild -workspace 工程名字.xcworkspace \
-scheme 工程名字\
-sdk iphoneos \
-configuration AppStoreDistribution \
-archivePath $PWD/build/工程名字.xcarchive \
clean archive | xcpretty
export_ipa.sh
set -eo pipefail
xcodebuild -archivePath $PWD/build/工程名字.xcarchive \
-exportOptionsPlist ./.github/secrets/ExportOptions.plist \
-exportPath $PWD/build \
-allowProvisioningUpdates \
-exportArchive | xcpretty
ExportOptions.plist 这个plist文件,可以用xcode archive下代码,导出ipa包的时候文件夹里会包含这个文件直接取出来使用
publish_fir.sh 这个脚本文件内容同学可以自行百度下对应三方管理平台的对应的命令
demo的GitHub地址:https://github.com/superSong-hello/GitHubActionForiOS.git
注意项目里是不包含证书的,想要测试替换成自己公司的证书并替换ExportOptions.plist文件