当前位置:首页 » 《关注互联网》 » 正文

Jenkins自动化打包iOS配置流程_jiaqi8rum的博客

14 人参与  2021年09月12日 13:03  分类 : 《关注互联网》  评论

点击全文阅读


前提条件: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

 

 

 

 


点击全文阅读


本文链接:http://zhangshiyu.com/post/27628.html

路径  文件  终端  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1