Jenkins配置iOS自动打包并上传fir.im
不要用安装包安装Jenkins,不然死的很惨
这个是官网,想去体验安装包安装的我拦不住。
我的环境
Mac 10.14.6
Xcode 11
环境搭建
-
安装Homebrew
既然不用安装包安装,那我们就说用homebrew安装了,没有homebrew自己去安装,官网命令随时更新,最好去官网复制,我把安装命令复制一下如下:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果安装包错是如下错误,请看我写的这篇文章,好像解决了大多数同学的疑问
安装homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation
-
用homebrew安装Jenkins
终端输入:
brew install jenkins
Jenkins安装是需要java1.8的,不出我所料的话你会报错如下,即你需要安装java1.8
jenkins: Java 1.8 is required to install this formula.
JavaRequirement unsatisfied!
You can install with Homebrew-Cask:
brew cask install homebrew/cask-versions/java8
You can download from:
https://www.oracle.com/technetwork/java/javase/downloads/index.html
Error: An unsatisfied requirement failed this build.
看提示就是终端执行如下命令安装java1.8
brew cask install homebrew/cask-versions/java8
安装完之后就继续安装jenkins的命令吧。
然后你执行brew install jenkins的时候可能会卡在Updating Homebrew...
此时给你一个终极解决方案,等1-10个小时应该就好了。
开玩笑了,解决办法来了:Updating的终端不要关,新开一个标签页,直接输入刚才的命令brew install jenkins即可正常安装了。
不出意外的话就成功了,如果有其他错误请百度。
-
Jenkins配置
安装好之后在终端输入:
jenkins
终端会启动jenkins,此时再浏览器输入http://localhost:8080,就会开始配置Jenkins了,会让你输入管理员密码,如图:
这个密码在你输入jenkins之后终端会输出一个密码,或者点击图中不知道在哪里?去看。
下一步如图:
图片.png
安装界面,如果有安装失败的无所谓,一会安装完继续即可
图片.png
下一步
图片.png
密码记好,忘记了只能卸载重装,顺便把卸载的命令发一下,依此执行如下命令:
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
我果然还是很贴心的,哈哈。
一路下一步,完成就配置好了。
-
Jenkins插件安装
安装这两个插件
Keychains and Provisioning ProfilesManagement和 Xcode integration
图片.png
图片.png
跟着数字标示去下载即可,完成后我们继续,如果没完成重复此步骤即可。
点击Manage Jenkins,往下翻会找到我们安装的keychain这个插件,点击进去
此时暂停我们去办点必须的事情:
进入这个目录/Users/登陆的用户名/Library/Keychains ,找到一个叫login.keychain的文件,如果没有肯定有login.keychain-db,复制一份出来放到桌面,如果复制的是login.keychain-db,改名字成login.keychain即可。总之要保证你桌面有叫login.keychain的一个文件。
然后再进这个目录/Users/登陆用户名/Library/MobileDevice/Provisioning Profiles ,找到你打包对应的Provisioning文件。如果有很多,我相信你会有很多,分不清楚哪个怎么办呢?好办,我给你准备了方法查看,终端输入:
security cms -D -I 文件名.mobileprovision | grep -A12 "Entitlements" `
代码说明:
1. 进入mobileprovision所在目录输入以上内容即可
2. grep中的A12选项意思是显示找到关键字后的12行内容,而不是仅仅显示关键字那一行;
2. .mobileprovision文件最终是一个xml文本,最最层节点名是‘plist’,所以可以将‘Entitlements’换成‘plist’已展示全部的内容;
3. .mobileprovision文件包涵‘app ID’、开发组名/ID、创建时间、过期时间、设备UDID、证书类型等内容;
5. 当不指定关键字时显示.mobileprovision中全部内容
————————————————
此时你就可以根据对应的appid来对应哪个是你要找的,不过这个要一个一个来,有点麻烦,有大神有更好的方法请留言指教。
此时我姑且认为你找到了对应的文件,也复制出来,放桌面。
继续keychain插件的配置如图:
图片.png
点击浏览,选中桌面上的login.keychain文件,然后upload,此时会出现如图
图片.png
password处输入你电脑密码,我的因为输入过了,点击change password可以改。
然后在code signing identity中输入什么呢?去钥匙串,找到你要打包的证书,复制图中名字填入即可
图片.png
然后再点击浏览,选中桌面上的provisioning文件,然后upload,此时会出现如图
图片.png
path那要填这个路径,就是你找这个文件的路径
/Users/登陆的用户名/Library/ MobileDevice/Provisioning Profiles
Save即可完成配置。
-
开始建Job,即任务了
图片.png
图片.png
图片.png
图片.png
此图中URl就是你工程的git地址,自己找,指定分支就是你要打包的分支
sourcetree的地址在这里,点击仓库-》仓库设置-〉远程仓库
图片.png
然后点添加
图片.png
类型如图,usernmae就是你git提交的名字
key就是你sshkey的私钥。告诉你怎么找,毕竟有人不知道
终端先输入:
cd ~/.ssh
然后再输入:
pbcopy < id_rsa
然后已经把私钥复制到剪切板了,直接粘贴到key那个文本框即可。
触发器这个暂时不说
构建环境这块的配置,选中图中选项,然后保存再重新进来就会有我们之前配置的证书和provisioning文件
图片.png
构建这里用shell方法
图片.png
shell如下
xcodebuild clean -workspace demoName.xcworkspace -scheme demoName -configuration Release
xcodebuild archive -workspace demoName.xcworkspace -scheme demoName -configuration Release -archivePath demoName.xcarchive
xcodebuild -exportArchive -archivePath demoName.xcarchive -exportOptionsPlist /Users/kang/Desktop/Jenkins/exportOption.plist -allowProvisioningUpdates -exportPath ./
此处要说明一下/Users/kang/Desktop/Jenkins/exportOption.plist
这个文件是打包的配置文件,如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>compileBitcode</key>
<false/>
<key>method</key>
<string>development</string>
<key>provisioningProfiles</key>
<dict>
<key>com.xxx.xxxxx</key>
<string>0547e68f-eaea-47d7-a37a-4105b8193fcc</string>
</dict>
<key>signingCertificate</key>
<string>iPhone Developer</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>Y3xxxxxx4K</string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>
可以自己建一个plist文件,然后复制进去,把对应的配置改下,其中
com.xxx.xxxxx改成你的app bundleid
0547e68f-eaea-47d7-a37a-4105b8193fcc这个改成你的provisioning profile名字
Y3xxxxxx4K改成你apple开发者账号的teamid
development对应你要打包的版本类型,是测试用的还是正式用,根据自己需求改
iPhone Developer这个对应开发
如果不想麻烦,就自己用xcode打包导出一个ipa的包,会有一个这个文件,放到桌面或者你可以找到的地方,把上边shell中的这个路径替换即可
shell最后的这个 ./ 是你ipa导出的路径,你可以换成桌面路径,比如这个/Users/登陆用户名/Desktop/
此时保存,然后执行build now就可以打包了,打包完成后会在
/Users/登陆用户名/Desktop/ 这个路径生成ipa包。
-
上传ipa到fir
如果是测试包,需要上传到fir,可以在接着上边的继续配置
先去这个地方下载Fir的插件下载地址
去插件管理中,点高级,上传刚才下载的插件,上传,等安装好即可
构建后操作选upload to fir
fir.im token从这个地址获取,要先登陆fir
图片.png
接下来,选择生成 ipa/apk 文件路径(此处我们应该填写上一步我们导出ipa包的路径,即/Users/登陆用户名/Desktop/)
注意:如果没有填写该选项,插会件自动默认查找 Jenkins 创建的项目目录下的 apk/ipa 文件
Build Notes(可选)
作用:上传 fir.im 后,可显示出更新日志
保存后再执行build now,等打包完会上传ipa到fir,并输出fir的下载地址如图
图片.png
大功告成,如果帮助你了,请点赞评论,谢谢
参考链接:
https://www.jianshu.com/p/470752f99134
https://blog.csdn.net/weixin_41845533/article/details/91358405
https://www.jianshu.com/p/bc717818d179
https://blog.csdn.net/yingms/article/details/72772232
http://blog.fir.im/jenkins/