热门标签 | 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’

 

 




推荐阅读
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 解决php错误信息不显示在浏览器上的方法
    本文介绍了解决php错误信息不显示在浏览器上的方法。作者发现php中的各种错误信息并不显示在浏览器上,而是需要在日志文件中查看。为了解决这个问题,作者提供了一种解决方式:通过修改php.ini文件中的display_errors参数为On,并重启服务。这样就可以在浏览器上直接显示php错误信息了。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
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社区 版权所有