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

Linux下jenkins实现IOSAPP自动化打包

ios打包文件,如果是在mac上安装jenkins,比较简单,不赘述本文主要叙述在Linux上部署的jenkins如何编译ios项目一

ios打包文件,如果是在mac上安装jenkins,比较简单,不赘述

本文主要叙述在Linux上部署的jenkins如何编译ios项目


一、设置MacOS节点

首先选择一台mac电脑,将其ip,登录这台mac 的账号密码找到

设置节点前先用ping命令测试下是否能连通这台机器

进入mac终端,打开ssh服务

查看ssh服务状态

sudo systemsetup -getremotelogin

如果已经开启的话,指令会显示 “Remote Login: On” ,反之就会显示“Remote Login: Off”。

开启ssh服务:sudo systemsetup -setremotelogin on

关闭ssh服务:sudo systemsetup -setremotelogin off

在mac上安装jdk,jdk自己下,或者去官网下,官网需要登录才可以下载

参考:https://www.jianshu.com/p/a85658902f26

进入我们Linux的jenkins,选择系统管理,节点管理,新建节点
在这里插入图片描述
将信息填入,并发构建数一般不超过5

工作目录自己选择一个,一定要有

用法选择只允许绑定到这台机器的job

启动方式选择 Launch…SSH

主机填ip

然后下一行,点击添加,将登录mac的账号密码填入,然后保存,选择这个账号密码即可

Host Key Verification Strategy 选择Non … Strategy

可用性选择尽量保持代理在线

保存即可
在这里插入图片描述
然后回到节点这里,就会出现mac节点了
在这里插入图片描述


二、在jenkins上开始构建ios项目

找到ios开发人员,拿到ios相关证书,才可以在mac上进行ios项目编译,具体使用找自己ios开发

接下来构建新建一个ios项目,选择自由风格

选择运行节点,选择我们刚刚创建的节点mac

svn或者GitHub选择代码,统一需要相关账号密码

找到构建,选择执行shell,写入:
在这里插入图片描述

上面编译肯定是不通过的,因为你缺少两个文件app-store.plist和ad-hoc.plist。这个你自己其实能找到,那就是在xcode里打包并Export出来的文件夹里,都会有一个ExportOptions.plist文件
根据你在Export时选择的是App Store 还是 Ad Hoc,分别复制进项目exportOptions/app-store.plist
和exportOptions/ad-hoc.plist

复制进去之后然后保存,再进行编译,即可在mac节点工作目录上看到已经打包好的ipa包,可以顺利安装在Apple设备上。


参考:

https://zhuanlan.zhihu.com/p/41756945https://testerhome.com/topics/3033http://liumh.com/2015/11/25/ios-auto-archive-ipa/

附上执行的shell脚本:

#!/bin/bash

#这句是解密mac登录,jenkins在mac没有账号密码,所以需要这个,不然报错
security unlock-keychain -p “foscam” ~/Library/Keychains/login.keychain

#必须先创建目录
mkdir -p build
rm -rf build/archive.xcarchive build/ipa-*

#获取目录名
project_list=ls | grep .xcodeproj #这条命令要加``,这里显示不了,但是自己记得加
project_name=${project_list%%.*}

#打包出app
#这和你点击 xcode -> Product -> Archive 是一样的效果的。
xcodebuild clean
xcodebuild archive
-project ./${project_name}.xcodeproj
-scheme ${project_name}
-configuration Release
-archivePath ./build/archive.xcarchive

#上面一步仅仅打包出了一个.xcarchive,下面这步则生成一个.ipa
xcodebuild -exportArchive
-archivePath ./build/archive.xcarchive
-exportPath ./build/ipa-ad-hoc
-exportOptionsPlist /jenkins_URL/workspace/exportOptions/ad-hoc.plist
-allowProvisioningUpdates


推荐阅读
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • Ubuntu 用户安装 Linux Kernel 3.15 RC1
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 我无法续订几天前过期的RHELDeveloper帐户订阅。我执行了以下步骤,但是,订 ... [详细]
author-avatar
会展小控
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有