热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自动化打包_ios在mac上配置Jenkins自动化打包

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ios在mac上配置Jenkins自动化打包相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ios 在mac上配置Jenkins自动化打包相关的知识,希望对你有一定的参考价值。




ios 在mac上配置Jenkins自动化打包

之前使用jenkins安装包配置过Jenkins,但是配置好之后因为使用安装包安装的jenkins是在机器上新建的账户,所以在配置证书时比较麻烦,会有权限问题,必须把证书和描述性文件拷贝到jenkins账户下才可以,最近使用brewinstall安装jenkins感觉比较方便,可以共用系统的证书和描述性文件


1.安装之前先检查是否装有Jenkins依赖的java环境, Jenkins依赖的是JDK1.8.xx


java -version


如果出现以下信息,则说明已经安装了java,直接进行第3步,若没出现则进行第2步


java version "1.8.0_102"

Java(TM) SE Runtime Environment (build 1.8.0_102-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)



2.安装JDK1.8

JDK1.8下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载后进行安装,安装后进行第1步进行检查是否安装成功


3.检查是否有安装HomeBrew


brew -v


若出现以下信息则说明已安装HomBrew,若未出现则进行安装HomBrew


Homebrew 2.0.1

Homebrew/homebrew-core (git revision 6d0e9; last commit 2019-02-11)


HomeBrew安装方式:官方https://brew.sh, 亦可以直接直接在终端执行下面的命令


/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 



4.安装Jenkins


brew install jenkins



5.启动Jenkins服务,终端输入命令


jenkins


在浏览器中输入http://localhost:8080,首次安装应该会出现如下界面,这里需要你去找到Jenkins的初始密码,执行cat /Users/yao/.jenkins/secrets/initialAdminPassword 获取原始密码




 



填充密码后,点击继续进入插件安装方式选择,是推荐安装,还是自定义安装,一般都是选择推荐安装




 



 




 



 

插件安装过程中有可能会有些安装失败,没关系,后面可以在插件管理里面进行重新安装

安装插件完成后进入jenkins 进入创建账户页面

 




 



创建一个jenkins账户密码就可以了,然后进入jenkins URL配置页面,这里配置的URL就是局域网内可以使用的链接访问Jenkins的地址,比如因为我的ip地址是192.168.10.30, 且为固定ip, 所以我配置的是 https://192.168.10.30:8080/,当然这里也可以暂时不配置,在配置里面也可以进行配置

 




 



点击保存继续




 




6.插件安装

因为我是打从gitlab管理源码并打ios包,然后发布到fir上面,所以需要以下插件:

1,gitLab Plugin

2,gitLab Hook Plugin

3,Xcode integration

4,keychains and provisioning profiles Management

5,CocoaPods Jenkins Integration

6,build Timeout

7,description setter plugin

8,Email Extension Plugin

9,SSH Agent Plugin

10, workSpace Cleanup Plugin

11,fir-Plugin

进入Jenkins界面后,点击系统管理->插件管理->可选插件: 搜索自己想要安装的插件进行安装,待所有插件安装完成后进行重启Jenkins, 在浏览器中输入http://localhost:8080/restart

但是有些插件在上面是搜不到的,例如fir-Plugin,那只能自己去下载fir-Plugin然后使用高级方法安装.

fir-plugn下载




 




关闭Jenkins服务:  在Jenkins服务器网址后面加上exit    http://localhost:8080/exit

重启Jenkins服务:  在Jenkins服务器网址后面加上restart    http://localhost:8080/restart



7.创建任务

 




 



 




 



 




 



8.源码管理

我这里是用git管理的源码,所以选择git:

 




 



这个时候会报错,没有权限访问git仓库,因为这是私有仓库,所以需要配置SSH获取访问权限.


ssh-keygen -t rsa -C "你的邮箱标识"


 




 



把公共密钥放到git服务器, jenkins 私钥,jenkins.pub 公钥 

获取公钥


$ cat /Users/Shared/Jenkins/.ssh/id_rsa.pub


回到构建的项目查看,已经有访问权限了


8.构建




 



xcodeBuild打包脚本


echo \'start build TestDemo\'

pwdwhoami

export LANG=en_US.UTF-8

export LANGUAGE=en_US.UTF-8

export LC_ALL=en_US.UTF-8

security unlock-keychain -p "你的打包机器密码" ~/Library/Keychains/login.keychain

#工程环境路径

workspace_path=.

#项目名称

project_name=FamilyDoctor

echo"第一步,更新库文件"

/usr/local/bin/pod update --verbose --no-repo-update

echo "第二步,清除缓存文件...................."

xcodebuild cleanrm -rf archiverm -f $project_name.ipa

echo "第三步,设置打包环境,准备开始打ipa包...................."

sed -i \'\' \'s/\\app-store\\<\\/string\\>/\\development\\<\\/string\\>/\' archieveOpt.plistsed -i \'\' \'s/ProvisiOningStyle= Automatic;/ProvisiOningStyle= Manual;/\' $project_name.xcodeproj/project.pbxproj

echo "第四步,执行编译生成.app命令"

xcodebuild archive -workspace $project_name.xcworkspace -scheme $project_name -configuration Release -archivePath archive/$project_name.xcarchive CODE_SIGN_IDENTITY="iPhone Developer: Zhengyang Wu (JYGL73395F)" PROVISIONING_PROFILE_SPECIFIER="development_patient_kevin"echo "

第五步,执行编译生成.ipa命令"

xcodebuild -exportArchive -exportOptionsPlist archieveOpt.plist -archivePath archive/$project_name.xcarchive -exportPath ./ -configuration Release


-exportOptionsPlist archieveOpt.plist这里的archieveOpt.plist是我们在工程目录下新建的.plist文件,该文件指明打包的类型和teamid




 



.plist内容

 




 




9.上传fir




 



fir.im Token是必填的,查看方法:请登录fir.im后,点击头像选择API token进行查看


10.添加描述和链接

上传fir后肯定想显示一个链接,能直接跳到fir的二维码页面

添加set build description

 




 



 




 



构建后会出现如下效果:

 




 



可以看出显示的是html格式,并不是可以点击的链接,这是因为jenkins没有设置支持html语法,需要在

jenkins->系统管理->configure global security->Markup Formatter中选择"safe HTML"就可以了.

提交代码触发不了打包的问题:

进入gitLab项目   在对应位置添加

http://192.168.10.29:8080/gitlab/build_now

http://192.168.10.29:8080是jenkins的打包地址,添加位置如下




 






 



这样就可以自动触发打包了

遇到的问题 : jenkins 自动构建 IOS 包签名遇到问题   app: errSecInternalComponent Command /usr/bin/codesign failed with exit code 1

解决办法:

 编译之前添加 security unlock-keychain -p "你的密码" "path to keychain/login.keychain"

根本原因是Jenkins,ssh方式到slave机上,默认是没有账户的,但是访问钥匙串要求必须有用户身份,所以添加一步输入密码解锁钥匙串,可以给Jenkins一个用户身份。 build步骤前添加一步解锁钥匙串。 security unlock-keychain -p "login pwd" ~/Library/Keychains/login.keychain


11. 卸载Jenkins

如果忘记账户密码 可以彻底删除重新安装

如果brewinstall 安装的,彻底删除需在终端依次执行以下命令:


sudo rm -rf /Users/Shared/Jenkins

sudo dscl . -delete /Users/jenkins

sudo dscl . -delete /Groups/jenkins

sudo rm -f /etc/newsyslog.d/jenkins.conf

pkgutil --pkgs | grep \'org\\.jenkins-ci\\.\' | xargs -n 1 sudo pkgutil —forget


如果安装包 安装的 可以彻底删除重新安装,彻底删除需在终端依次执行以下命令:


\'/Library/Application Support/Jenkins/Uninstall.command’

 

 




推荐阅读
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • Symfony是一个功能强大的PHP框架,以其依赖注入(DI)特性著称。许多流行的PHP框架如Drupal和Laravel的核心组件都基于Symfony构建。本文将详细介绍Symfony的安装方法及其基本使用。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 本文探讨了如何在Hive(基于Hadoop)环境中编写类似SQL的语句,以去除字段中的空格。特别是在处理邮政编码等数据时,去除特定位置的空格是常见的需求。 ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • CentOS 6.8 上安装 Oracle 10.2.0.1 的常见问题及解决方案
    本文记录了在 CentOS 6.8 系统上安装 Oracle 10.2.0.1 数据库时遇到的问题及解决方法,包括依赖库缺失、操作系统版本不兼容、用户权限不足等问题。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
author-avatar
j7988l28
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有