IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Mac下载jenkins版本2.263.4 及iOS配置 -> 正文阅读

[系统运维]Mac下载jenkins版本2.263.4 及iOS配置

前言
最近想在自己的电脑上安装Jenkins用来打包,在此记录一下踩过的坑,首先我按照Jenkins官网安装的
jenkins官网
请添加图片描述homebrew终端敲了几句命令,就成功安装了,但是到了上传证书那步,upload没有反应,后来看见有人说是新版的bug,当前版本为v.2.303.22.263.4版本没有这个bug,于是我按照官网的第二句下载指定版本

$brew install jenkins-lts@YOUR_VERSION

请添加图片描述报错,于是我开始尝试其他途径,2.263.4版本Jenkins.war这里提供两种下载方式
1.手动下载jenkins.war,解压安装
下载地址:

2.使用wget来下载

$wget https://get.jenkins.io/war-stable/2.263.4/jenkins.war

接下来进入正题,jenkins指定版本的下载安装及配置

一.配置java环境

Java 8下载地址
请添加图片描述下载安装启动以后会在 系统偏好设置 的最下面看见java的图标

二.搭建Jenkins环境

其实手动下载和使用命令下载都是一样的
对于喜欢可视化的人可以使用手动下载

1). 下载并创建路径

我的文件路径
请添加图片描述###### 2). 终端执行

$ java -jar -Xmx4096m -DJENKINS_HOME=/opt/jenkins/2.263.4 /opt/jenkins/soft/jenkins.war  --httpPort=8080
Running from: /opt/jenkins/soft/jenkins.war
/opt/jenkins/2.263.4:目标目录
/opt/jenkins/soft/jenkins.war: 2.263.4jenkins.war 目录
8080:端口
maxiaoliao@maxiaoliaodeMacBook-Pro-2 ~ % java -jar -Xmx4096m -DJENKINS_HOME=/opt/jenkins/2.263.4 /opt/jenkins/soft/jenkins.war  --httpPort=8080
Running from: /opt/jenkins/soft/jenkins.war
Running from: /opt/jenkins/soft/jenkins.war
webroot: System.getProperty("JENKINS_HOME")
...
Please use the following password to proceed to installation:

538397e5e63240b58d155fb43c70a1c2

This may also be found at: /opt/jenkins/2.263.4/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

538397e5e63240b58d155fb43c70a1c2 是初始密码

3). Jenkins初始化
  • 浏览器打开网址 http://localhost:8080
    请添加图片描述用刚刚初始密码登录
  • 可以看见当前版本,安装推荐插件
    请添加图片描述
  • 创建管理员用户请添加图片描述
  • 之后有个填链接的,默认或者先不填都可以,然后就可以使用请添加图片描述##### 三.证书配置
    因为我要打包iOS项目,所以接下来是iOS项目的配置
1). 下载插件

路径 Manage Jenkins -> Manage Plugins
请添加图片描述这里我们下载两个插件 ,可选插件
一个用于上传证书和描述文件:Keychains and Provisioning Profiles Management
一个用于构建参数:Git Parameter
安装后可以重启一下,不是必须的

2). 配置证书

路径 Manage Jenkins -> Keychains and Provisioning Profiles Management
??:之前就是这个页面的upload怎么都不好使请添加图片描述###### 1).上传我们的keychain和描述文件

keychain路径:~/Library/Keychains
描述文件路径:/Users/用户名/Library/MobileDevice/Provisioning Profiles
  • 在这个目录下有个login.keychain-db的文件 复制出来删掉-db,文件名为login.keychain
  • 点击upload上传login.keychain
  • 证书名称查找如图
    请添加图片描述
  • 配置如图一下的证书信息
    请添加图片描述
    然后保存,证书就配置好了
3). 创建项目

新建Item -> 输入任务名 -> Freestyle project -> 确定
请添加图片描述

4). 项目配置
  • 描述:非必填
  • 丢弃旧的构建(按需求填)
    请添加图片描述
  • 源码管理
    这里我用的是阿里code SSH下载的,登录自己的账号 找到项目SSH路径
    请添加图片描述
    然后是公私钥的配置
    请添加图片描述
    我们可以参考帮助页面,生产公钥 私钥,公钥填在阿里code上,私钥填在jenkins凭证里 SSH帮助页面

是否已经存在本地公钥

$ cat ~/.ssh/id_rsa.pub

没有的话

$ ssh-keygen -t rsa -C "用户名"

会要求输入密码 如果不设置的 直接点击空格
查看公钥 从ssh-开始直到你的用户名和主机名为止的内容

$ cat ~/.ssh/id_rsa.pub

Mac复制

$ pbcopy < ~/.ssh/id_rsa.pub

查看私钥

$ cat ~/.ssh/id_rsa

请添加图片描述
请添加图片描述

  • 构建环境
    请添加图片描述
    这个是可以选的,如果不可以选,就保存在进来一下
    到这里 我们回去构建一下就可以成功了,
5). 构建

这个可以执行脚本,个性化配置
请添加图片描述

6).扩展

以上一般满足不了我们需求,我们还需要一些配置,列举一些我需要的配置

  • 参数构建
    This project is parameterized 项目参数
    刚刚我们下载了一个Git Parameter 这个可以用来拉取 选择分支
    请添加图片描述下面的源码管理Branches to build 指定分支(为空时代表any) $branch
  • 执行脚本
#!/bin/sh
export LANG=en_US.UTF-8


# 根据Build选择
# 配置 APIEnvironment 

PROJECT_PATH="/Users/maxiaoliao/Desktop/jenkins/code/Enterprise"
SETTING_PATH="/Users/maxiaoliao/Desktop/jenkins/setting"

file="${PROJECT_PATH}/Enterprise/YCAPIClient/APIBaseConfig.swift"
config_str="var apiConfig: APIEnvironment = .${api_request}"
sed -i "" "20s/.*/$config_str/" "$file"

# 配置 Settings.Bundle
settings_bundle="${PROJECT_PATH}/Enterprise/Enterprise/Resources/Settings.bundle"
settings_plist="$settings_bundle/Root.plist"
/usr/libexec/PlistBuddy \
		-c "Set :PreferenceSpecifiers:2:DefaultValue ${api_request}" "$settings_plist"

/usr/libexec/PlistBuddy \
		-c "Set :PreferenceSpecifiers:8:DefaultValue ${branch}" "$settings_plist"
        
# 修改APP Display Name
display_name="jenkins_demo.TEST"
info_plist="${PROJECT_PATH}/Enterprise/Enterprise/Resources/Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName $display_name" "$info_plist"


# 修改APP-Icon
app_icon="${PROJECT_PATH}/Enterprise/Enterprise/Resources/Assets.xcassets/"
test_icon="${PROJECT_PATH}/Enterprise/Enterprise/Resources/Tests/AppIcon.appiconset"

cp -f -R $test_icon $app_icon


# 网络请求报错弹窗
if $show_api_error_alert 
then
api_file="${PROJECT_PATH}/YCAPIClient/APIClient.swift"
sed -i "" "85s/\/\//""/" "$api_file"

fi


# 设置配置标识,编译环境(根据需要自行填写 release |debug )  Jenkins
configuration="Jenkins"

# 工程名(根据项目自行填写)
APP_NAME="jenkins_demo"

# TARGET名称(根据项目自行填写)
TARGET_NAME="Enterprise"

# 日期
DATE=$(date +%Y%m%d-%H-%M-%S)
# 工程文件路径
ARCHIVE_NAME="${APP_NAME}-${DATE}.xcarchive"


# 要上传的ipa文件路径 ${username} 需要换成自己的用户名
ROOT_PATH="/Users/maxiaoliao/Desktop/jenkins"
ARCHIVE_PATH="${ROOT_PATH}/Archive/${ARCHIVE_NAME}"
IPA_PATH="${ROOT_PATH}/Export"
FILE_PATH="${IPA_PATH}/${APP_NAME}.ipa"

echo "\n++++++++ PATHs:"
echo "PROJECT_PATH: ${PROJECT_PATH}"
echo "ARCHIVE_PATH: ${ARCHIVE_PATH}"
echo "IPA_PATH: ${IPA_PATH}"

# 导包方式(这里需要根据需要手动配置:AdHoc/AppStore/Enterprise/Development)
EXPORT_METHOD="AdHoc"
EXPORT_METHOD_PLIST_PATH=${ROOT_PATH}/settings/UKeAdHocExportOptions.plist



# 指ipa定输出文件夹
rm -rf "${ROOT_PATH}/Archive/"
rm -rf ${IPA_PATH}
mkdir -pv ${IPA_PATH}


# 进入工程源码根目录
cd "${PROJECT_PATH}/${TARGET_NAME}"

xcworkspace_name="${TARGET_NAME}.xcworkspace"

echo "\n"
echo "🏎?🏎? =================clean=================  🏎?🏎? "

xcodebuild clean -workspace ${xcworkspace_name} \
				 -scheme "${TARGET_NAME}" \
				 -configuration ${configuration} \
		     	 -UseModernBuildSystem=YES

echo "\n"
echo "🚗🚗🚗 *** 正在 构建项目  🚗🚗🚗"


xcodebuild archive -workspace ${xcworkspace_name} \
                   -scheme ${TARGET_NAME} \
                   -configuration ${configuration} \
                   -archivePath ${ARCHIVE_PATH} \
                   -destination 'generic/platform=iOS' \
             	   -quiet
                 

#  检查是否构建成功
#  xcarchive 实际是一个文件夹不是一个文件所以使用 -d 判断
if [ -d "$ARCHIVE_PATH" ] ; then
echo "? *** [项目构建成功] "
else
echo "? ***  [项目构建失败] "
exit 1
fi

echo '🚄 ***************** 正在 打包  ***************** 🚄 '

echo ${CODE_SIGNING_IDENTITY}

xcodebuild  -sdk iphoneos \
			-exportArchive \
            -archivePath ${ARCHIVE_PATH} \
            -exportPath ${IPA_PATH} \
            -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} \
            -allowProvisioningUpdates \
            -allowProvisioningDeviceRegistration \
            CODE_SIGN_IDENTITY="Apple Distribution: 证书名 Technology Co., Ltd."



if [ -e ${FILE_PATH} ]; then
echo "? *** .ipa文件已导出 ***"
echo $FILE_PATH

else
echo "? *** 创建.ipa文件失败 ***"
exit 1
fi

# exit 0

echo '📦  *** 打包完成 ***'
cd "${PROJECT_PATH}"
commit_sha1=`git rev-parse --short HEAD | awk '{print $1}'`
commit_log=`git log --pretty=format:“%s” $commit_sha1 -4`

updateDescription="${branch} | ${api_request} | ${commit_sha1} \nrecent_commits:\n"
update_desc=`echo $updateDescription`

echo "🚀 上传蒲公英 ++++++++++++++upload+++++++++++++"
curl -F "file=@${FILE_PATH}" \
	 -F "uKey=aaaaassssssssss" \
     -F "_api_key=aaaaaaaaaaa" \
     -F "updateDescription=${update_desc}${commit_log}" \
     http://upload.pgyer.com/apiv1/app/upload

echo "? *** 上传蒲公英完成 ***"


if $notify_wechat
then

echo "→ *** 通知企微群 ***"

noti_msg="【jenkins_demo APP-iOS】打包完成\nBranch:${branch},\nCommit:${commit_sha1},\nDefaultAPI:${api_request}\nDownload:https://www.pgyer.com/XD2i"
content=$noti_msg

curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=企业微信的key' \
   -H 'Content-Type: application/json' \
   -d '
   {
    "msgtype": "text",
    "text": {
        "content": "'$content'",
        "mentioned_list":["@all"]
    }
}'

echo "?  *** 通知企微群完成 ***"

fi

jenkins重启
http://localhost:8080/restart
未完待续:
参考博客:
https://blog.csdn.net/qq_38082146/article/details/118334569

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-18 17:46:14  更:2021-10-18 17:46:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:32:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码