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的目錄是默認安裝/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.reibang.com/p/dc6f3fea7aa9
http://www.reibang.com/p/3b4a131653e0