Jenkins自动化打包(iOS)

流程

1、配置Java环境
2、安装Jenkins
3、Jenkins配置

具体操作

1、安装JDK和配置java环境
参考:[java环境配置]https://www.jianshu.com/p/964bdfeb9465
注意:java需要安装8.0版本

2、Jenkins安装
参考:[Jenkins安装]https://www.jianshu.com/p/41ecb06ae95f
[Jenkins官网下载地址]https://jenkins.io/
注意:安装好Jenkins后需要启动Jenkins
jenv use java 1.8 (切换java版本)
cd Jenkins安装目录
java -jar jenkins.war

3、Jenkins配置(重点)
一、git源码管理
Repository URL:填写git clone的地址
Credentials:手动添加
注意1:这里的ssh配置,需要填写的是Jenkins用户下面创建的ssh key,Jenkins上面的配置以及git上的配置都需要填写Jenkins用户下生成的ssh key
切换账号可以使用“su 账号名”进行切换
注意2:如果项目下有子模块,需要配置Additional Behaviours
选择Recursively update submodules,
避免项目拉取超时,需要设置Timeout (in minutes) for submodules operations:60min

二、配置login.keychain文件
将/Users/管理员用户名/Library/Keychains/下的login.keychain及login.keychain-db这两个文件拷贝到/Users/Shared/Jenkins/Library/Keychains文件夹下面。
注意:Mac OS 10.12以下的没有login.keychain-db这个文件,只需要拷login.keychain文件。

三、配置配置Provisioning Profiles
将/Users/管理员用户名/Library的MobileDevice文件夹拷贝到/Users/Shared/Jenkins/Library下;
/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles
/Users/用户/Library/MobileDevice/Provisioning Profiles

注意:在Mac OS上,证书其实是跟登陆账号走的,也就是添加时,如果选择“登陆”,则只会添加进该账号目录下的keychain中。针对Jenkins部署,因为其会另创建一个叫Jenkins的账户,如果发布证书是安装在当前账户时,构建会报错说找不到provisioning profile对应的证书,而当前帐号下的“钥匙串”中明明有这个证书。
此问题需要登出当前Mac帐户,然后登录Jenkins帐号,然后再次添加证书,选择“登录”类型,这样证书才会真正安装到jenkins帐号下,构建才能找到该证书。
[参考]https://www.jianshu.com/p/6a3a009da35b

四、配置ExportOptions.plist文件
因为 Xcode 9 默认不允许访问钥匙串的内容,必须要设置 allowProvisioningUpdates 才会允许,Jenkins的Xcode插件目前无法支持此项完成打包流程。

打包一次即可导出即可生成ExportOptions.plis文件,将ExportOptions.plis添加到本地一个固定的位置,然后在脚本中配置

五、图文配置实例
1、git仓库配置


1.jpg

2、添加Credentials


2.jpg

3、子模块拉取以及拉取超时时间设置
3.jpg

六、配置shell

pwd
ls
#pod install --repo-update


security unlock-keychain -p "*23***"#用户账号密码

xcodebuild clean
xcodebuild archive -archivePath ~/RainbowSix/RainbowSix.xcarchive -workspace ./RainbowSix.xcworkspace -scheme RainbowSix 
xcodebuild -exportArchive -archivePath ~/RainbowSix/RainbowSix.xcarchive -exportPath ~/RainbowSix.ipa -exportOptionsPlist ~/RainbowSix/ExportOptions.plist 

pwd
ls

cd ~/RainbowSix.ipa #ipa包地址

IPA_PATH=`pwd`/RainbowSix.ipa

curl -F "file=@${IPA_PATH}" -F "uKey=42c5afe1c2a3baadce2e415e4fc85***" -F "_api_key=7df3e23ca32b2f979e6e7d6165eb5***" https://qiniu-storage.pgyer.com/apiv1/app/upload
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容