ios打包研究(三)jenkins

492 阅读3分钟

1、安装

brew install jenkins

WechatIMG24.jpeg

brew services stop jenkins brew services start jenkins brew services restart jenkins 另一种安装方式 blog.csdn.net/u011537073/… blog.csdn.net/u011537073/…

2、登录并配置

修改配置

vim /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.jenkins</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/libexec/java_home</string>
      <string>-v</string>
      <string>1.8</string>
      <string>--exec</string>
      <string>java</string>
      <string>-Dmail.smtp.starttls.enable=true</string>
      <string>-jar</string>
      <string>/usr/local/opt/jenkins/libexec/jenkins.war</string>
      <string>--httpListenAddress=127.0.0.1</string>
      <string>--httpPort=8083</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

  1. 局域网使用IP访问jenkins 使用brew安装jenkins会避免很多其他安装方式产生的用户权限问题,但是会将httpListenAddress默认设置为127.0.0.1,这样我们虽然可以在本地用localhost:8080访问,但是本机和局域网均无法用ip访问。解决办法为修改两个路径下的plist配置。并重启 ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist 将上面两个plist中的httpListenAddress后的ip地址,修改为本机IP或者0.0.0.0即可。

  2. 本地直接路按照提示输入密码下一步创建账号

www.jianshu.com/p/0f828265c…

3、创建项目

www.jianshu.com/p/1268118d4… www.jianshu.com/p/dac1ce3d7…

贴上我的脚本

#下面那句是调用本机的环境配置的
#!/bin/bash -ilex
ls
cd IMAPPMIOS
#使用方法
if [ ! -d ./IPADir ];
then
mkdir -p IPADir;
fi
#工程绝对路径 不知道为什么获取工程绝对路径不行 谁知道怎么解决请告知谢谢!
project_path=$(cd `dirname $0`; pwd)
project_name=IMAPPMIOS

#scheme名 将XXX替换成自己的sheme名
scheme_name=IMAPPMIOS

#打包模式 Debug/Release
development_mode=Release

#build文件夹路径
build_path=/Users/kfzx-version/.jenkins/workspace/ios/IMAPPMIOS/build

#plist文件所在路径
exportOptionsPlistPath=${project_path}/ExportOptions.plist

#导出.ipa文件所在路径
exportIpaPath=/Users/kfzx-version/.jenkins/workspace/ios/IMAPPMIOS/IPADir/

echo "======================================================================="
echo "                           开始打包部分                              "
echo "======================================================================="
echo '///-----------'
echo '/// 正在清理工程'
echo '///-----------'
xcodebuild \
clean -configuration ${development_mode} -quiet  || exit
echo '///--------'
echo '/// 清理完成'
echo '///--------'
echo ''
echo '///-----------'
echo '/// 正在编译工程:'${development_mode}
echo '///-----------'
xcodebuild \
archive -project /Users/kfzx-version/.jenkins/workspace/ios/IMAPPMIOS/${project_name}.xcodeproj \
-scheme ${scheme_name} \
-configuration ${development_mode} \
-archivePath /Users/kfzx-version/.jenkins/workspace/ios/IMAPPMIOS/build/${project_name}.xcarchive  -quiet  || exit
echo '///--------'
echo '/// 编译完成'
echo '///--------'
echo ''
echo '///----------'
echo '/// 开始ipa打包'
echo '///----------'
xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \
-configuration ${development_mode} \
-exportPath ${exportIpaPath} \
-exportOptionsPlist /Users/kfzx-version/.jenkins/workspace/ios/IMAPPMIOS/ExportOptions.plist

rm -rf build

#ftp上传路径,每个月份的版本要修改
ftp_ipa_dir="/data/ftp/mims/download/mimsapp/2105test/"`date +%m%d`
#.ipa文件输出本地路径
ipa_output_dir=$HOME'/Documents/IMAPP/2105/'`date +%m%d`

ipa_post_name=IMAPP_C_IOS_`date +%Y%m%d_%H_%M`

mkdir -p $ipa_output_dir/$ipa_post_name

cp ./IPADir/* $ipa_output_dir/${ipa_post_name}/
mv $ipa_output_dir/${ipa_post_name}/IMAPPMIOS.ipa $ipa_output_dir/${ipa_post_name}/${ipa_post_name}.ipa

#不用插件是不知道怎么根据每天的日期动态上传文件到当日日期文件夹下。有大神知道怎么解决请告知

ftpserver_ip=122.19.173.70 
username=用户名
password=密码
echo $ftp_ipa_dir

FILE_NAME=$ipa_output_dir/${ipa_post_name}/${ipa_post_name}.ipa

ftp -n  $ftpserver_ip <<!
user $username $password
mkdir  $ftp_ipa_dir
cd $ftp_ipa_dir
bin
put $FILE_NAME ${FILE_NAME##*/}
bye
EOF


4、插件安装

截屏2021-05-14 上午10.52.59.png 插件管理——》选取需要的插件

证书和描述文件管理配置插件 keychain 插件上传 login.keychain 文件 点击上传一直失败没有反应 最后放在了.jenkins/kpp_upload/下就自动显示了在自己配置就行了。

插件下载失败解决办法

1 升级jenkins

2 替换插件下载源

选择【高级】选项卡

替换最下方【升级站点】中的URL

updates.jenkins-ci.org/update-cent… 替换为

mirror.esuni.jp/jenkins/upd…

如下图:

978388-20190307143449030-1156376690.png 【详细的Jenkins的镜像地址查询:mirrors.jenkins-ci.org/status.html… 3 手动下载上传插件安装 这里就以安装Docker Pipline插件为例,演示手动下载上传插件安装:

1》首先咱们可以在启动的Jenkins上的 系统管理进 插件管理下 搜索插件

978388-20190307163207124-954210264.png 2》进入Jenkins的插件下载网站

下载Jenkins的插件的地址:plugins.jenkins.io/

978388-20190307165937654-459255569.png

978388-20190307170009291-1088410464.png 点击进入后,可以获取历史插件版本

978388-20190311100709462-223443562.png 下载对应版本插件

978388-20190311101030484-566974050.png

3》进入Jenkins,进入系统管理,进入管理插件,进入高级,上传插件文件,开始上传 978388-20190311101355242-1254795929.png

首次加载插件失败问题 今天安装了一下jenkins,在初始化安装插件时出现“ No such plugin: cloudbees-folder”错误,根据网上的教程:

1、打开链接“ftp.icm.edu.pl/packages/je…

2、将目录中的“cloudbees-folder.hpi”下载下来后放在“jenkins安装目录\war\WEB-INF\detached-plugins”文件夹中。

执行1、2步骤后刷新页面仍然出现“ No such plugin: cloudbees-folder”错误,猜测这个“hpi”文件可能是项目启动时候加载,是需要重启jenkins服务才可以,因此执行:

3、在“控制面板-管理工具-服务”中找到“jenkins”服务,重启服务。