2018.4.17更新:
解決MAC下使用pkg安裝權(quán)限問題
踩坑記錄
Fastlane+蒲公英+Jenkins
fastlane command not found
mac下Jenkins 主目錄導(dǎo)致的權(quán)限問題
寫在前面
最近項目在做新項目時經(jīng)常發(fā)現(xiàn)有很多小bug需要改動,一改就要重新打包,哪怕是一個很小的項目,光是編譯打包導(dǎo)出,再上傳到測試平臺沒個十幾分鐘也是下不來的。本來的話也只是想找個自動打包的腳本,找了幾個發(fā)現(xiàn)都不怎么理想,于是就瞄準(zhǔn)了 Jenkins + Fastlane
Jenkins是用于管理,如果只需要打包的話Fastlane就足夠了
本文也主要是記錄自己踩的坑,而且大部分是來自于Jenkins的,
有興趣的童靴可以繼續(xù)往下看~
當(dāng)前環(huán)境
| 名稱 | 版本 |
|---|---|
| macOS | 10.13.4 |
| Xcode | 9.3 |
| ruby | 2.4.0 |
| fastlane | 2.91.0 |
使用Fastlane
先說說Fastlane,畢竟Jenkins是持續(xù)化管理的,相信很多小伙伴的初衷也只是想要自動化的快速快速編譯打包,省去漫長等待而已
準(zhǔn)備工作
安裝RVM
使用rvm來管理ruby環(huán)境,macOS雖然有自帶的ruby環(huán)境,但是會出現(xiàn)各種權(quán)限問題
安裝完成后記得 使用
source ~/.rvm/scripts/rvm
完了后 關(guān)閉終端跑一下rvm -v看看是否正常
如果出現(xiàn)command not found那就是有問題了,
具體情況需要具體分析還是google吧安裝ruby
有了rvm安裝后 直接安裝ruby
安裝好后 執(zhí)行which ruby看看ruby是否由rvm管理
如果顯示為
/Users/xxxxxx/.rvm/rubies/ruby-2.4.0/bin/ruby
那就可以了
- 安裝fastlane
上面都搞定后執(zhí)行安裝命令
gem install fastlane -NV
至此,我們已經(jīng)可以使用fastlane自動化打包了
準(zhǔn)備打包
- cd 到工程主目錄
- 執(zhí)行
fastlane init我這里選擇的是手動配置 - 執(zhí)行
fastlane add_plugin pgyer安裝蒲公英插件
編輯Fastfile
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:ios)
platform :ios do
desc "上傳到測試版本到蒲公英"
desc "生成本地版本"
lane :topgyer do|option|
#自動增加build
# increment_build_number
#自動生成證書
#cert
#自動生成配置文件
#sigh(force: true)//我使用的是手動配置關(guān)閉這個。如需自動則打開即可
#gym配置,打包輸出。
#fastlane gym --export_method ad-hoc
#fastlane gym --export_method enterprise
#fastlane gym --export_method app-store
scheme_name = "你的scheme名字"
#獲取version和build版本號
version = get_info_plist_value(path: "./#{scheme_name}/Info.plist", key: "CFBundleShortVersionString")
build = get_info_plist_value(path: "./#{scheme_name}/Info.plist", key: "CFBundleVersion")
#導(dǎo)出路徑
output_directory = "./build"
#導(dǎo)出名稱
output_name = "#{scheme_name}_#{version}_#{build}_#{option[:desc]}_#{Time.now.strftime('%Y%m%d%H%M%S')}.ipa"
gym(
export_method: "ad-hoc", #這里填寫導(dǎo)出方式,我使用的是ad-hoc
export_xcargs: "-allowProvisioningUpdates",
export_options:{
provisioningProfiles: {
"cn.com.kkk" => "iPhone Distribution: kkk. (77777XXRRR)"
}
},
scheme: scheme_name,
clean: true,
output_directory: output_directory,
output_name: output_name
)
pgyer(api_key: "11111122222233333444444", user_key: "111122233344455555", update_description: "#{option[:desc]}")
end
end
回到項目項目主目錄 執(zhí)行fastlane topgyer desc:更新
編譯完成后就會自動上傳到蒲公英
Jenkins 踩坑
Mac 下的 Jenkins真是一個大坑了。
重復(fù)過多種安裝方法來進行構(gòu)建,一會是github拉不到代碼,一會又是fastlane command not found ,又或者是報了一堆ruby的錯誤,心累啊。
最后嘗試了各種方法 總算是有點眉目了
pkg安裝
首先我們說說最坑爹的pkg安裝
Jenkins下載 LTS的macOS版本,很方便 直接是一個.pkg文件,安裝一下。
但是安裝后會直接啟動jenkins的web站,然后你會發(fā)現(xiàn)jenkins的目錄是默認(rèn)安裝/Users/Shared/jenkins的(就是共享文件夾),也就是在你的用戶目錄之外, 接下來等你安裝完成后一構(gòu)建就是各種報錯。。。
所以。。。
不要使用pkg安裝。。。。
2018.4.17更新
需要注意的是安裝時不使用Shared用戶 (當(dāng)然用了也無妨)

把share用戶關(guān)閉 防止權(quán)限問題

安裝完成后就會發(fā)現(xiàn)秘鑰就也在用戶目錄下了
如果忘記勾選了你會發(fā)現(xiàn)秘鑰的位置是在shared/jenkins目錄下。
沒關(guān)系,設(shè)置里面刪掉用戶,shared 中 把jenkins 目錄刪了
回到Finder的Application,找到Jenkins文件夾 雙擊jenkins.jar

繼續(xù)回到localhost:8080中也能看到秘鑰地址回到用戶目錄下了
接下來就是正常的安裝插件和語言。
由于本地使用rvm來管理ruby,也是深坑一大堆,構(gòu)建時會出現(xiàn)這些報錯。
找了很多方法 原因大概是ruby的問題,加過全局變量,還是不行
最后發(fā)現(xiàn),其實很簡單。。。一個插件搞定。
插件管理中搜索 rvm

安裝完成后 在項目配置的構(gòu)建環(huán)境中選擇rvm的ruby版本就行了。。

接下來就可以愉快的構(gòu)建了。
命令行安裝
brew install jenkins
后端執(zhí)行
nohup java -jar /usr/local/Cellar/jenkins/版本號/libexec/jenkins.war --httpPort=8080 &
接著 新開一個終端執(zhí)行
open /Library/LaunchDaemons
新建一個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>StandardOutPath</key>
<string>/var/log/jenkins/jenkins.log</string>
<key>StandardErrorPath</key>
<string>/var/log/jenkins/jenkins.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>JENKINS_HOME</key>
<string>/Users/leon/Documents/FuckingJenkins/Jenkins/Home</string>
</dict>
<key>GroupName</key>
<string>daemon</string>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.jenkins-ci</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Library/Application Support/Jenkins/jenkins-runner.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>jenkins</string>
<key>SessionCreate</key>
<true/>
</dict>
</plist>
接著更改plist的權(quán)限
sudo chown root:wheel /Library/LaunchDaemons/org.jenkins-ci.plist
最后執(zhí)行啟動jenkins
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
回到localhost:8080

直接查看密碼 輸入 進入安裝插件界面。
安裝完成后,先去插件管理中 安裝個 漢化

配置一下中文

接下來就是正常創(chuàng)建項目了。


這里可以直接填寫托管平臺的賬號的密碼,或者使用sshkey

這里就直接執(zhí)行fastlane命令就可以

至此就足夠了。
點擊立即構(gòu)建,查看控制臺,所有的日志都會打印出來。
等待成功就ok了
后記
踩了好幾遍的坑 對于pkg的安裝一直不死心,來來回回重裝了好幾遍。最終還是放棄了。還是老老實實用jar
參考文章:
http://www.itdecent.cn/p/dc6f3fea7aa9
http://www.itdecent.cn/p/3b4a131653e0


