前提条件:Mac系统,并且已经安装xcode,homedrew,Java,如果项目工程中集成了cocoapod,也需要安装cocoapod

Jenkins打包方式分为两种,一种是xcode插件化配置打包,一种是脚本配置化打包,本人更倾向于脚本打包,因此接下来主要介绍iOS脚本打包配置过程

一.通过homebrew安装Jenkins

打开终端,执行命令行

brew install jenkins(注:目前通过这个命令行下载的Jenkins,安装的插件keychain无法正常上传文件)

建议下载更低版本的Jenkins

brew install jenkins-lts

通过homedrew安装后jenkins安装好后所在的位置:
实际安装位置:/usr/local/Cellar/jenkins/
配置文件所在位置:/usr/local/opt/jenkins/
工作空间位置:/Users/用户/.jenkins
进入工作空间位置:cd ~/.jenkins

二.启动Jenkins

打开一个终端,执行命令

brew services start jenkins-lts

重启Jenkins

brew services restart jenkins-lts

关闭Jenkins

brew services stop jenkins-lts

第一次服务开启成功后,在浏览器中输入http://localhost:8080,会出现一个让你输入Jenkins初始密码的页面

获取Jenkins初始密码

重新打开一个终端,执行命令

Ls -a

找到.jenkins文件,执行命令

cd .jenkins

ls -a

cd secrets

ls -a

直到获取到initialAdminPassword文件,执行命令

cat initialAdminPassword

至此将获取到的初始密码输入Jenkins,重启Jenkins

brew services restart jenkins

重新在浏览器输入http://localhost:8080,会进入配置界面

,击安装建议的插件,耐心等待插件安装过程(时间较长)

(若过程中有插件安装失败,可暂时忽略,进入Jenkins后可根据错误log,重新下载安装)

插件安装成功后,

按要求将所有项目填写成功后,点击保存就可以正常使用Jenkins

三.接下来创建项目任务,如图

1.新建任务打开后,由于我们是用Git管理代码的,所以源码管理选择Git

2.点击保存,回到任务操作页面,点击立即构建,如果Git项目地址和账号密码没问题,构建完成后就可以在

/Users/用户/.jenkins/workspace看到要打包的项目

四.脚本自动化打包流程

1.项目创建完成后,开始配置构建参数

3.增加构建步骤,选择执行shell

4.以项目为例,脚本命令如下

echo 'start build xxxProject'

pwd

whoami

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

pod install --verbose --no-repo-update

workspace_path=.

# 工程名
APP_NAME="xxxProject"
APP_target="xxxProject"
# 证书,如果自动选择证书,设为“iPhone Developer”即可
CODE_SIGN_DEVELOPER="iPhone Developer"

# info.plist路径
project_infoplist_path="./Info_enterprise.plist"

#取版本号
bundleShortVersion=`xcodebuild -showBuildSettings -target $APP_target | grep MARKETING_VERSION | tr -d 'MARKETING_VERSION ='`

#取build值 
bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" "${project_infoplist_path}") 
echo "$bundleShortVersion"

DATE="$(date +%Y%m%d)"
IPANAME="xxxProject_${app_path}_V${bundleShortVersion}_${DATE}"

#要上传的ipa文件路径
IPA_PATH="${WORKSPACE}/package/"
echo ${IPA_PATH}
#echo "${IPA_PATH}">> text.txt

#工程环境路径
project_path=$(pwd)
echo "-----> 工程路径:${project_path}"

#工程名称
project_name=$(ls | grep xcodeproj | awk -F.xcodeproj '{print $1}')

#配置测试环境的.m文件

configureFile=$project_path/$project_name/xxx/xxx/xxx.m
echo "$configureFile"

url='^NSString \*const kBaseUrl.*$'

app_url=''

if [ $app_path = "A" ];then
app_url='NSString *const kBaseUrl = @"http:\/\/xxx\/xxx";'

elif [ $app_path = "B" ];then
app_url='NSString *const kBaseUrl = @"http:\/\/xxx\/xxx";'

elif [ $app_path = "C" ];then
app_url='NSString *const kBaseUrl = @"http:\/\/xxx\/xxx";'
";'
else
echo '**************'
fi

sed -i '' "s/$url/$app_url/g" ${configureFile}
sed -i '' "s/$web_url/$app_web_url/g" ${configureFile}
sed -i '' "s/$vip_url/$app_vip_url/g" ${configureFile}

#集成有Cocopods的用法
echo "=================clean================="
xcodebuild -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_target}" -configuration "${build_configuration}" clean

echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild archive -workspace "${APP_NAME}.xcworkspace" -scheme "${APP_target}" -archivePath "${IPA_PATH}${APP_target}.xcarchive" -configuration "${build_configuration}"

xcodebuild -exportArchive -archivePath "${IPA_PATH}${APP_target}.xcarchive" -exportPath "${IPA_PATH}${IPANAME}" -exportOptionsPlist "${IPA_PATH}exportOptions.plist"

5.需注意,使用exportArchive导出.ipa包时,必须在导出路径内配置exportOptions.plist文件

exportOptions.plist格式如下

6..ipa文件构建成功,如图

首先,. ipa包导出路径必须放在Jenkins工程项目路径下,例如

#要上传的ipa文件路径
IPA_PATH="${WORKSPACE}/package/"

然后,增加构建后的操作,选择归档成品

用于存档的文件选择ipa包路径,如图

注意

1.项目构建时,报错pod: command not found

解决方案:前提是已经安装了cocoapods

第一步:打开Jenkins,然后在Jenkins左侧的菜单中找到 系统管理--->系统设置--->全局属性,然后找到Environment variables(中文:环境变量)并且勾选。
第二步:打开你的终端,在终端中输入echo $PATH,终端会打印出一串字符串,几个路径,复制该路径,返回到Jenkins中
第三步:会让填写一个键值对,键默认填写PATH,值填写你从终端复制的那个字符串,点击保存,完成,构建该项目。

2.项目打包成功,但是报错 Step ‘Archive the artifacts’ failed: No artifacts found that match the file pattern

解决方案:

第一步. ipa包导出路径必须放在Jenkins工程项目路径下,例如

#要上传的ipa文件路径
IPA_PATH="${WORKSPACE}/package/"

第二步.增加构建后的操作,选择归档成品

用于存档的文件选择ipa包路径,如图

3.打包报错  ARCHIVE FAILED

error: No profiles for 'com.ts.hjwealth' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.ts.hjwealth'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'HJInvestment' from project 'HJInvestment')

解决方案:

一般这个报错原因是描述文件和工程bundleID不匹配,检查配置的描述文件,重新配置相对应的profile

Jenkins自动化打包iOS配置流程相关推荐

  1. gitlab+jenkins自动化打包APK

    前置条件: 环境搭建,jenkins需要的插件看这里: gitlab+jenkins自动化打包IOS 配置思路: step1: 搭建sdk,gradle运行环境,参照: CentOS7下安装安装and ...

  2. iOS - mac环境Jenkins自动化打包并上传蒲公英分发从0到1详细搭建过程,自我的实践记录

    第一过程 :  环境的相关配置条: 0. mac 电脑,系统版本为为 10.14.5 1. 升级ruby环境: 我用的是  rvm 1.29.9,可在终端 用  rvm -v 查看当前版本. 2. 安 ...

  3. Android jenkins 自动化打包

    前言:前段时间因项目需要捣拾了一下Jenkins自动化打包,过程中遇到了很多的坑,在此记录一下.因为这篇博客是之后写的,所以有些具体的坑就不能回显了. 一,实现的功能 选择版本号,git 分支,渠道, ...

  4. Android-使用Jenkins自动化打包详解-Linux篇

    文章目录 购买和使用阿里云 安装宝塔面板 安装Tomcat 安装 jenkins 配置jenkins 设置FTP jenkins 常规操作 修改admin密码 购买和使用阿里云 首先购买阿里云,可从以 ...

  5. 使用jenkins自动化打包部署Vue项目。详细教程。

    此教程 jenkins是直接部署到linux服务器上.服务器系统:CentOS 7.3 64位. 流程:jenkins关联码云仓库,点击立即构建,执行shell进行构建,打包,把打包后的dist目录文 ...

  6. Jenkins自动化打包生成二维码下载链接

    在自动化打包流程中,Jenkins是一个不错的工具,可以帮助我们省去很多的打包和部署问题,解放了双手.通常,使用Jenkins 打包好的 apk 文件,我们可以上传到tomcat或者httpd所在服务 ...

  7. jenkins自动化打包部署,jenkins执行sh脚本不退出问题

    介绍 Jenkins是开源软件项目,主要用来自动化打包部署.使用jenkins彻底告别手动部署的麻烦与繁琐. 安装部署jenkins 官方下载地址 启动jenkins war包 登入jenkins 设 ...

  8. 好玩的东西 Jenkins 自动化打包

    官网下载jenkins 左边的windowns 装好后next 点到选择localsystem (第一个选择框)然后设置用户名密码然后连接外网 会打开一个jenkins连接 根据提示安装插件 有一部分 ...

  9. 无人值守安装linux指定硬盘,Linux无人值守自动化安装详细配置流程!

    在生产环境中,往往需要给成百上千台服务器安装系统,手动安装略显蛋疼,网络自动化引导安装就能解决批量安装的问题,从此批量系统安装so easy! 以下配置流程均在CentOS 6.7实现 实现环境: P ...

最新文章

  1. set RowCount 与 top n
  2. 【Ubuntu】ubuntu webqq桌面版pywebqq
  3. php和java整合开发实战_PHP和Java强强联合 PHP与Java集成开发详解
  4. python零基础系统学习教程之Python 变量类型
  5. [Luogu1821][USACO07FEB]银牛派对Silver Cow Party
  6. 关于C#异步编程你应该了解的几点建议
  7. vux 使用 font-awesome
  8. 谈谈能带来高薪报酬的软件技术
  9. NLP判断语言情绪_网易严选nlp预训练语言模型的应用
  10. 尔雅网络选课 大学计算机知识,2017-2018学年第1学期超星尔雅网络课程选课指南.PDF...
  11. 自动化测试工程师简历模板
  12. 知其然,知其所以然——ArrayList.add()详解
  13. (1)CC3200学习之blinky导入后报编译器版本错误
  14. 常用应届生Java开发笔试面试题(更新中)
  15. golang 结构体使用chan
  16. JupyterLab教程:程序员的笔记本神器v2.0
  17. 批量创建Azure DevOps Server 的账户
  18. python版FlappyBird代码解析
  19. 网易游戏实习电话面试
  20. 查看并 redis慢日志

热门文章

  1. 直面聊天机器人(一)
  2. Photoshop在相框中嵌入人像的方法
  3. Windows10开启Linux子系统WSL
  4. matlab contourf(data_100);,contourf以及griddata生成网格问题
  5. c52传感器温度显示c语言编程,基于STC89C52的数字温度计 附C语言代码.doc
  6. MySQL触发器概念、原理与用法
  7. 制作多重启动光盘——启动易(EasyBoo…
  8. 美妆是个好生意,帮女神们虚拟试妆的app也会是好生意吗?
  9. 基于51单片机简单病床呼叫系统
  10. 插入排序之折半插入法