原文链接:http://www.jianshu.com/p/5abbe0d61cef

参考链接:http://blog.csdn.net/potato512/article/details/52176073

开头

前面几片记录了jenkins的使用,配置一个jenkins环境,我们需要一个比较闲得笔记本做这份工作,不可能自己的本一直开着这个服务,动不动CPU风扇狂转,其他性能下降,反而会影响我们工作,怎么办了,写个shell脚本帮我们完成工程打包、上传。

原理

xcode在jenkins中编译、shell编译还是xcode自身编译都是需要xcode自己的IDE环境决定的,具体来说就是

xcodebuild & xcrun这俩家伙来完成

废话不多说,直接上脚本,需要的自己改一下即可。

project打包上传

#!/usr/bin/bash#next test
#1.证书
#2.打包状态每部判断#设置Xcode的Build Settings->Code Signing Resource Rules Path的值为:$(SDKROOT)/ResourceRules.plist #xcodeproj文件的绝对路径 PROJECT="/Users/mac/Desktop/pro/git/MCPayDemo/MCPayDemo.xcodeproj" SCHEME="MCPayDemo" #iPhone Distribution: IDENTITY="iPhone Developer: ma jiancheng (xxxxx)" #Distribution Provision File Path PROVISIONING_PROFILE="/Users/mac/Library/MobileDevice/Provisioning\ Profiles/ead3e7e7-a2e8-45c2-98fa-008f3712xxxx.mobileprovision" #输出ipa文件的路径, 最好是绝对路径 OUTDIR="/Users/mac/Desktop/pro/git/MCPayDemo/output" PRODUCTDIR=${OUTDIR} #FIR 秘钥 FIRTOKEN="5558b26ae383df7390b880xxxxxxx" #蒲公英aipKey PAPIKEY="c1ad57c15a5bb0c770c51639xxxxxxx" #蒲公英uKey PUKEY="d5eb8f86040b9ae6108ed4c58xxxxxxx" if [ ! -f $PROVISIONING_PROFILE ]; then echo "Please download the provision file for "${PROVISIONING_PROFILE} exit 4; fi echo "~~~~~~~~~~~~~~~~清理工程~~~~~~~~~~~~~~~~编译工程~~~~~~~" echo "${OUTDIR}${SCHEME}.ipa" echo "xcrun -sdk iphoneos PackageApplication -v ${PRODUCTDIR}/${SCHEME}.app -o ${OUTDIR}/${SCHEME}.ipa --sign ${IDENTITY} --embed ${PROVISIONING_PROFILE}" xcodebuild -project "${PROJECT}" -scheme "${SCHEME}" -configuration Release clean build CODE_SIGN_IDENTITY="${IDENTITY}" -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR} #打包成 .ipa echo "~~~~~~~~~~~${SCHEME}.ipa}~~~scuess" echo "xcrun -sdk iphoneos PackageApplication -v ${PRODUCTDIR}/${SCHEME}.app -o ${OUTDIR}/${SCHEME}.ipa --sign \"${IDENTITY}\" --embed ${PROVISIONING_PROFILE}" xcrun -sdk iphoneos PackageApplication -v "${PRODUCTDIR}/${SCHEME}.app" -o "${OUTDIR}/${SCHEME}.ipa" # --sign "\"${IDENTITY}\"" --embed "${PROVISIONING_PROFILE}" #上传到测试平台 -> fir.im fir p "${OUTDIR}/${SCHEME}.ipa" -T "${FIRTOKEN}" echo "-------------------->fir.im------->蒲公英---------" echo "curl -F file=@${OUTDIR}/${SCHEME}.ipa -F uKey=${PUKEY} -F _api_key=${PAPIKEY} http://www.pgyer.com/apiv1/app/upload" curl -F "file=@${OUTDIR}/${SCHEME}.ipa" -F "uKey=${PUKEY}" -F "_api_key=${PAPIKEY}" "http://www.pgyer.com/apiv1/app/upload" echo "\n\n"

workspace打包上传

/#!/usr/bin/bash
#############################################
/# batch rename                                 #
/# Input  :    $1 SCHEME                      #
/# eg:需要编译的scheme # /# Input : $2 PROVISION PREFIX # /# eg: mobileprovision文件的名称 # ############################################# #next test #1.证书 #2.打包状态每部判断 #设置Xcode的Build Settings->Code Signing Resource Rules Path的值为:$(SDKROOT)/ResourceRules.plist #xcodeproj文件的绝对路径[修改] WORKSPACE_PATH="/Users/mac/Desktop/car/Runnor.CarService.IosApp/" WORKSPACE_NAME="MCCarServiceiPhone" SCHEME="MCCarServiceiPhone" #生成的APP名称,根据xcode项目 plist来定 APPNAME="MCCarServiceiPhone" #iPhone Distribution: FOO. IDENTITY="\"iPhone Developer: ma jiancheng (xxxxxxxxx)\"" #Distribution Provision File Path PROVISIONING_PROFILE="/Users/mac/Library/MobileDevice/Provisioning\ Profiles/ead3e7e7-a2e8-45c2-98fa-008f3712382d.mobileprovision" #输出ipa文件的路径, 最好是绝对路径 OUTDIR="${WORKSPACE_PATH}/output" #FIR 秘钥 FIRTOKEN="5558b26ae383df7390b880bexxxxxxx" #蒲公英aipKey PAPIKEY="c1ad57c15a5bb0c770c51639xxxxxxx" #蒲公英uKey PUKEY="d5eb8f86040b9ae6108ed4c5xxxxxxxx" if [ ! -f $PROVISIONING_PROFILE ]; then echo "Please download the provision file for " ${PROVISIONING_PROFILE} exit 4; fi echo "~~~~~~~~~~~~~~~~清理工程~~~~~~~~~~~~~~~~编译工程~~~~~~~" echo "${OUTDIR}${APPNAME}.ipa" echo "xcodebuild -workspace ${WORKSPACE_NAME}.xcworkspace -scheme ${SCHEME} -configuration Release clean build CODE_SIGN_IDENTITY=${IDENTITY} -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR}" xcodebuild -workspace "${WORKSPACE_PATH}/${WORKSPACE_NAME}.xcworkspace" -scheme "${SCHEME}" -configuration Release clean build CODE_SIGN_IDENTITY="${IDENTITY}" -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR} #打包成 .ipa echo "~~~~~~~~~~~${APPNAME}.ipa}~~~scuess" echo "xcrun -sdk iphoneos PackageApplication -v ${OUTDIR}/${APPNAME}.app -o ${OUTDIR}/${APPNAME}.ipa --sign ${IDENTITY} --embed ${PROVISIONING_PROFILE}" xcrun -sdk iphoneos PackageApplication -v "${OUTDIR}/${APPNAME}.app" -o "${OUTDIR}/${APPNAME}.ipa" # --sign "${IDENTITY}" --embed "${PROVISIONING_PROFILE}" #上传到测试平台 -> fir.im echo "-------------------->fir.im------->蒲公英---------" #fir p "${OUTDIR}/${SCHEME}.ipa" -T "${FIRTOKEN}" # -> 蒲公英 echo "curl -F file=@${OUTDIR}/${APPNAME}.ipa -F uKey=${PUKEY} -F _api_key=${PAPIKEY} http://www.pgyer.com/apiv1/app/upload" curl -F "file=@${OUTDIR}/${APPNAME}.ipa" -F "uKey=${PUKEY}" -F "_api_key=${PAPIKEY}" "http://www.pgyer.com/apiv1/app/upload" echo "\n\n" #--------------------end--------------

结语

这个shell语句写的比较简单,等闲暇会在本文优化。本文是jenkins的一个衍生,后续会在jenkins上探索一些持续构建的工作。

文/lp_马建成(简书作者)
原文链接:http://www.jianshu.com/p/5abbe0d61cef
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

转载于:https://www.cnblogs.com/wfwenchao/p/5946412.html

iOS shell脚本打包相关推荐

  1. iOS - Shell 脚本学习入门

    解释器与编译器 1. 编译器过程:  源代码 - 预处理器 - 编译器 - 目标代码 - 链接器 - 可执行程序 2. 解释器过程:  源代码 - 解释器  (python ,shell , js) ...

  2. IOS 打包证书签名 shell脚本

    shell 脚本: #!/bin/bash # #-------------------------------------------- # 功能: # 作者: # 创建日期: #--------- ...

  3. iOS开发之项目自动打包Shell脚本

    Github地址:https://github.com/AAWayne/YWAutoPackage 平时自用的iOS项目自动打包脚本,支持自动上传蒲公英.App Store等应用分发平台 前言 先说说 ...

  4. iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上

    如果移动端访问不佳,可以访问我的个人博客 用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir. ...

  5. IOS工程自动打包并发布脚本实现

    文章首发地址:http://webfrogs.me/2013/02/18/ios-automation/ 作者:webfrogs 转载请注明出处. 前言 IOS的开发过程中,当需要给测试人员发布测试包 ...

  6. 【IOS】IOS工程自动打包并发布脚本实现

    网上看到一个build ios工程并打包的脚本,写的很不错,学习了下,并添加部分注释,方便理解 http://blog.csdn.net/ccf0703/article/details/8588667 ...

  7. ios重签名shell脚本_03:双层签名和重签名流程以及shell脚本重签名

    复习 1:双向签名7不流程 2:查看签名信息和证书信息 3:查看用户权限 4:shell脚本签名 目录 1:双向签名7不流程 2:查看签名信息和证书信息 3:查看用户权限 4:shell脚本签名 正文 ...

  8. 我司Spring Boot 项目打包 + Shell 脚本部署详细总结,太有用了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署,重点在分享一个shell 程序启动工具,希望能便利 ...

  9. Spring Boot 打包不同环境配置与 Shell 脚本部署

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 本篇和大家分享的是 Spring Boot 打包并结合 S ...

  10. 自动打包Shell脚本

    简介 iOS应用自动化打包,可以给开发者带来无穷的便利.节省了不少时间. 作者Bruce的脚本,放到Github BashShell上了 另外Bryce Zhang童鞋总结了一篇:传送门 Build+ ...

最新文章

  1. JavaScript 变量
  2. volatile 关键字
  3. Ribbon客户端负载均衡介绍
  4. Windows下程序启动时出现0xc000007b错误的解决方案
  5. Python 模块学习
  6. 滚动监听 after选择器
  7. 网站导航(自定义站点地图)
  8. 华为荣耀6 root
  9. 2022-2027年(新版)中国钢铁产业运行状况及需求前景预测报告
  10. 新手小白也看得懂的电脑win10安装教程
  11. drupal mysql hash密码_變更drupal7用戶密碼加密方式
  12. Linux内核访问用户空间文件 filp_open/vfs_read/vfs_write/set_fs/get_fs
  13. 牛客 华华听月月唱歌 贪心
  14. 微信办公时代,企业文化也能撑起企业的半壁江山?
  15. 简洁的HTML5和CSS3免费企业网站模板源码下载
  16. 光学系统总体布局设计方法
  17. java玫瑰花代码_玫瑰花c语言代码
  18. ThreeJS加载geojson数据实现3D地图
  19. Android 注入 看雪
  20. Python获取前一天的日期,前一个月的第一天,前一个月的最后一天

热门文章

  1. java技术学习路线(自用)
  2. 必看谈谈数据库的锁机制!!
  3. 数据库db2错误代码大全
  4. javasript深度拷贝
  5. [转]加载纹理与使用glGenTextures时应注意的一点(解决吃内存)
  6. 跨域问题及jQuery中Ajax传参的讲解
  7. pptp,l2tp获取登录用户信息用pppd参数即可
  8. iOS安装CocoaPods详细过程
  9. thinkphp 5.0 模块设计
  10. IOS SDWebImage实现原理详解