欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux下jenkins实现 IOS APP自动化打包

程序员文章站 2022-04-14 08:18:44
...

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,选择系统管理,节点管理,新建节点
Linux下jenkins实现 IOS APP自动化打包
将信息填入,并发构建数一般不超过5

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

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

启动方式选择 Launch…SSH

主机填ip

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

Host Key Verification Strategy 选择Non … Strategy

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

保存即可
Linux下jenkins实现 IOS APP自动化打包
然后回到节点这里,就会出现mac节点了
Linux下jenkins实现 IOS APP自动化打包

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

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

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

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

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

找到构建,选择执行shell,写入:
Linux下jenkins实现 IOS APP自动化打包

上面编译肯定是不通过的,因为你缺少两个文件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/41756945
  https://testerhome.com/topics/3033
  http://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

相关标签: 自动打包