iOS持续集成脚本

基本思路是通过脚本判断git特定分支是否有更新。此处需要先配置好环境,clonecheckout 到要持续集成的分支。然后通过git pull简单判断是否有更新。如果有就开始打包。
打包部分用最原始的xcodebuild。所有证书配置都采用苹果提供的automatic。后面再不邮件发送的脚本。
然后上传到蒲公英,此处蒲公英官网提供了curl示例命令。
OK,脚本如下

#处理
cd ${workspacePath}
git pull | grep "Already up to date."
#如果有更新内容就编译打包
if [ $? -ne 0 ]; then
    #clean
    xcodebuild -scheme ${projectName} -project "${workspacePath}${projectName}.xcodeproj" -configuration Releas clean build
    #archive
    xcodebuild -scheme ${projectName} -project "${workspacePath}${projectName}.xcodeproj" -configuration Releas archive -archivePath "${archivePath}${projectName}"
    #export
    xcodebuild -exportArchive -archivePath "${archivePath}${projectName}.xcarchive" -exportPath ${archivePath} -exportOptionsPlist "${ADHocExportOptionsFile}"  -allowProvisioningUpdates
    #是否导出成功
    if [ $? -ne 0 ]; then
        echo "${date}:打包失败" >> $log
        #发送邮件表示失败
    else
        #上传蒲公英
        ipaPath="${archivePath}${projectName}.ipa"
        curl -F "file=@$ipaPath" -F "uKey=${uKey}" -F "_api_key=${api_key}" https://www.pgyer.com/apiv1/app/upload
    fi
else
    echo "${date}:没有更新" >> $log
fi

这里面有一个配置文件:ADHocExportOptions.plist





    compileBitcode
    
    destination
    export
    manifest
    
        appURL
        https://www.example.com/aap/foo.ipa
        displayImageURL
        https://www.example.com/image.57x57.png
        fullSizeImageURL
        https://www.example.com/image.57x57.png
    
    method
    ad-hoc
    signingStyle
    automatic
    stripSwiftSymbols
    
    teamID
    teamID


最后配置系统定时任务定时执行脚本,比如每5min执行一次。这个时间最合理的是看电脑配置,间隔时间尽量大于一次打包并上传的时间,否则两次执行脚本可能就会有交叉。实际使用中交叉的概率很低。当然最好的办法是采用ps -ef|grep "bash "的方法判断是否正在执行脚本,当然是判断正在执行的脚本数量。这些就凭大家喜好了。我这里主要保持脚本简洁可用,这样学习起来比较容易。

你可能感兴趣的:(iOS持续集成脚本)