[iOS开发] 使用Jenkins自动打包并上传至蒲公英
设置构建触发器
Poll SCM
H/2 * * * *
设置 构建脚本
#
#xodebuild & jenkins 自动构建并上传至pgyer.com
#2017年5月9日
# #定义一些变量
PROJ_NAME="zhixinStuApp"
cd ./${PROJ_NAME}
ARCHIVE_NAME="${PROJ_NAME}#${BUILD_NUMBER}#Pro.xcarchive"
LIBRARY_PATH="~/Library"
ARCHIVE_PATH="${LIBRARY_PATH}/Developer/Xcode/Archives/${ARCHIVE_NAME}"
DIS_TARGET="ad-hoc"
EXPORT_OPTION_PATH="/Users/Shared/exportOptions/ad-hoc.plist"
HOST_HEADER_PATH="/Users/Shared/exportOptions/hostConfig/HostConfig.h.pro.h"
IPA_DIR="${PROJ_NAME}#${BUILD_NUMBER}"
IPA_PATH="$/Users/Shared/Jenkins/Library/ipas/${IPA_DIR}/${DIS_TARGET}"
PLIST_PATH="./${PROJ_NAME}/Info.plist"
ENVIRONMENT_PATH="./${PROJ_NAME}/${PROJ_NAME}.entitlements"
APP_NAME="知新点点" #修改HostConfig.h文件
cp ${HOST_HEADER_PATH} ./${PROJ_NAME}/HostConfig.h #描述文件UUID
PROFILE="d825a1ea-10ad-4de9-87d1-93884e98dc79" #证书名字
IDENTITY="iPhone Distribution: Beijing Brilliant Insight Tree Technology Co., Ltd. (73HJR29D82)" #修改Xcode8中的自动签名改为手动管理
sed -i '' 's/ProvisioningStyle = Automatic;/ProvisioningStyle = Manual;/' ./${PROJ_NAME}.xcodeproj/project.pbxproj #修改CFBundleVersion为jenkins的BUILD_NUMBER
echo '修改${PLIST_PATH}中CFBundleVersion的值为${BUILD_NUMBER}'
plutil -replace CFBundleVersion -string "${BUILD_NUMBER}" ${PLIST_PATH} #修改 CFBundleDisplayName
echo '修改 ${PLIST_PATH} 中 CFBundleDisplayName 的值为${APP_NAME}'
plutil -replace CFBundleDisplayName -string "${APP_NAME}" ${PLIST_PATH} #修改 aps-environment 的值 development/production
echo '修改 ${ENVIRONMENT_PATH} 中 aps-environment 的值为 production'
plutil -replace aps-environment -string "production" ${ENVIRONMENT_PATH} #开始编译 xcode签名不能设置为自动,只能使用手动管理签名方式
xcodebuild -project ${PROJ_NAME}.xcodeproj -scheme ${PROJ_NAME} -archivePath "${ARCHIVE_PATH}" -configuration Release CODE_SIGN_IDENTITY="${IDENTITY}" PROVISIONING_PROFILE="${PROFILE}" archive #导出ipa包
xcodebuild -exportArchive -archivePath "${ARCHIVE_PATH}" -exportPath ${IPA_PATH} -exportOptionsPlist "${EXPORT_OPTION_PATH}" CODE_SIGN_IDENTITY=${IDENTITY} PROVISIONING_PROFILE=${PROFILE} #上传包到pgyer.com
API_KEY="09d238dda37****9ef0fa1b04e590"
USER_KEY="17dc2f6cafc****fcd24e41e16"
curl -F "file=@${IPA_PATH}/${PROJ_NAME}.ipa" -F "uKey=${USER_KEY}" -F "_api_key=${API_KEY}" https://www.pgyer.com/apiv1/app/upload
[iOS开发] 使用Jenkins自动打包并上传至蒲公英的更多相关文章
- Android Studio如何配置CURL指令一键打包apk上传至蒲公英
Android Studio如何配置CURL指令一键打包apk上传至蒲公英 第一步:在所需要打包的模块build.gradle文件中加入如下代码: android{ buildTypes { //配置 ...
- jenkins 之 iOS 打包及上传至蒲公英
准备条件 iMAC(要 Mac OS 系统,安卓 和 苹果 可以在同一台电脑上打包) xcode 最新版,要已安装对应的开发证书(生成一个 Ad-Hoc 类型的包就有了) brew(当前管理员账户安装 ...
- jenkins+svn 打包部署上传服务器并正常运行项目,从安装到使用
以前写过一个版本,jenkins打包部署的全果然,然后...没保存,现在重新写一个版本从按照开始. 项目平时部署情况,svn拉代码,开发打包后进行给测试,测试上传到跳板机,杀掉以前项目进程,上传到服务 ...
- jenkins 之 Android 打包及上传至蒲公英
准备条件 iMAC,非必须(如果是 安卓 和 苹果 可以在同一台电脑上打包则要 Mac OS 系统的电脑,如果是只是给安卓打包 windows 电脑也是可以的, window 下 需要把 ls 换成 ...
- Android Jenkins自动打包纪录
关于Jenkins自动打包Android的apk包,网上官方的太多,这里简单纪录一下博主的经历和打包的参数纪录 (本篇文章需要对Jenkins有最基本的基础了解) 博主所在公司曾负责app测试过程中发 ...
- 基于jenkins自动打包并部署Tomcat环境
传统网站部署的流程 在运维过程中,网站部署是运维的工作之一.传统的网站部署的流程大致分为:需求分析->原型设计->开发代码->提交代码->内网部署->内网测试->确 ...
- jenkins+svn完整打包并上传到linux服务器上
因为公司用的是svn版本管理工具并且部署在了windows服务器上,所以测试环使用jenkins需要部署两套环境, 一套是在本地windows服务器,jenkins从svn下载代码完成打包并上传到li ...
- Jenkins自动打包配置
当时也是花费了不少时间来配置Jenkins自动打包的问题,觉得还是需要记录一下. 1.安装Jenkins,这个很简单,不需要多说. 2.下载Git Plugin,Gradle Plugin,Andro ...
- vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
一.前言 三年.net开发转前端已经四个月了,前端主要用webpack+vue,由于后端转过来的,前端不够系统,希望分享下开发心得与园友一起学习. 图片的上传之前都是用的插件(ajaxupload), ...
随机推荐
- 洛谷P3975 跳房子 [DP,单调队列优化,二分答案]
题目传送门 跳房子 题目描述 跳房子,也叫跳飞机,是一种世界性的儿童游戏,也是中国民间传统的体育游戏之一. 跳房子的游戏规则如下: 在地面上确定一个起点,然后在起点右侧画 n 个格子,这些格子都在同一 ...
- ExtJs之列表常用CRUD
前端代码: Ext.onReady(function(){ Ext.define('Person', { extend: 'Ext.data.Model', fields: [{name: 'id', ...
- 洛谷P4609 [FJOI2016]建筑师(第一类斯特林数+组合数)
题面 洛谷 题解 (图片来源于网络,侵删) 以最高的柱子\(n\)为分界线,我们将左边的一个柱子和它右边的省略号看作一个圆排列,右边的一个柱子和它左边的省略号看作一个圆排列,于是,除了中间的最高的柱子 ...
- NOIP2018 提高组题解
Day1 T1 据说是原题积木大赛,但是考场上蠢了,只会写数据结构,于是写了一个线段树\(+\)堆\(+\)贪心,先选出最小的,然后区间修改,然后把左右两端区间的最小值丢进堆里,不停从堆中去最小值更新 ...
- Memory Allocation with COBOL
Generally, the use of a table/array (Static Memory) is most common in COBOL modules in an applicatio ...
- Python开发基础-Day19继承组合应用、对象序列化和反序列化,选课系统综合示例
继承+组合应用示例 class Date: #定义时间类,包含姓名.年.月.日,用于返回生日 def __init__(self,name,year,mon,day): self.name = nam ...
- 【BZOJ 1528】 1528: [POI2005]sam-Toy Cars (贪心+堆)
1528: [POI2005]sam-Toy Cars Description Jasio 是一个三岁的小男孩,他最喜欢玩玩具了,他有n 个不同的玩具,它们都被放在了很高的架子上所以Jasio 拿不到 ...
- 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)
题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...
- php 自动补位
1 sprintf("%06d", 2); 2 str_pad();
- 通过简单的SSH隧道实现穿越上网(转)
说明:很惊讶,原来强大的SSH也能实现穿越上网,且配置真的很简单,比OpenVPN简单很多.当然,除了代理简单上网之外,其余功能就没OpenVPN那么的强大,对于用哪个就需要自己去衡量.SSH建立的隧 ...