Jenkins 搭建Android自動打包環(huán)境

操作環(huán)境

  • 本地環(huán)境 MAC
  • 遠(yuǎn)程環(huán)境 Linux

登錄遠(yuǎn)程Linux

  1. 使用mac自帶的terminal ssh登錄遠(yuǎn)程無服務(wù)
  2. 使用工具Iterm2 或者 Termius (windows可以選擇使用xshell),這里我選擇使用Termius,可以找破解版的
  • 使用Termius登錄成功后


    image.png

Jenkins環(huán)境搭建

Linux環(huán)境配置

  • 更新軟件源
sudo apt-get update

安裝jdk

  • 查看java版本
-java -version
  • 根據(jù)你的Android編譯時所需要的jdk版本,安裝對應(yīng)的版本;這里安裝jdk11,去oracle官方平臺下載 jdk11

  • 使用SFTP將文件從Mac拷貝到遠(yuǎn)程Linux中

  • 解壓到相應(yīng)的目錄

  • 配置環(huán)境變量

# 編輯環(huán)境變量
vim /etc/profile

#在打開的文件中添加如下配置
JAVA_HOME=/usr/local/jdk-11.0.14
CLASSPATH=.:$JAVA_HOME/lib
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH

#使環(huán)境變量生效
source /etc/profile

安裝Jenkins 參考連接

 #1. 我們將存儲庫密鑰添加到系統(tǒng)。
 wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
 #2. 添加密鑰后,系統(tǒng)將返回OK 。 接下來,我們將Debian包存儲庫地址附加到服務(wù)器的sources.list
 echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
 #3. 運行update ,以便apt-get將使用新的存儲庫
 sudo apt-get update
 #4. 最后,我們將安裝Jenkins及其依賴項,包括Java
 sudo apt-get install -y jenkins

啟動Jenkins服務(wù)

 #使用systemctl我們將啟動Jenkins
 sudo systemctl start jenkins

 #由于systemctl不顯示輸出,我們將使用其status命令來驗證它是否成功啟動
 sudo systemctl status jenkins 

 #重啟Jenkins
 sudo systemctl restart jenkins

設(shè)置Jenkins

#登錄Jenkins
#使用服務(wù)器域名或IP地址訪問Jenkins的默認(rèn)端口8080
http://ip_address_or_domain_name:8080
#瀏覽器會顯示設(shè)置初始密碼,地址瀏覽器上面會顯示,如下面的路徑
#/var/lib/jenkins/secrets/initialAdminPassword
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

android sdk搭建 參考鏈接

  • android sdk下載
    下載地址:http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz
    如果是本地下載,需要將下載后的包上傳到遠(yuǎn)程linux
  • 進(jìn)入android放置的目錄,我這里是(/android/sdk/),解壓tar -zxvf android-sdk_r24.4.1-linux.tgz
  • 配置sdk環(huán)境變量,編輯/etc/profile,添加如下配置
export ANDROID_HOME=/android/android-sdk-linux
export PATH=$PATH:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tool
export PATH=$PATH:${ANDROID_HOME}/cmdline-tools/latest/bin
  • 安裝sdk
#顯示可下載更新的所有資源包
android list sdk --all
image.png

image.png
  • 更新sdk
#根據(jù)sdk更新對應(yīng)的包
ndroid update sdk -u --all --filter 1,2,3,4,5,6,7,8,...

如果你需要的sdk和buildtools版本沒有在列表中,請下載命令行工具

  • 下載sdk命令行工具 點擊下載

  • 將下載的壓縮包解壓到android/android-sdk-linux/command-tools/latest


    image.png
  • sdkmanager使用

配置jenkins

常見錯誤

  • 打包時報錯
> Failed to install the following Android SDK packages as some licences have not been accepted.
    build-tools;30.0.2 Android SDK Build-Tools 30.0.2
    platforms;android-31 Android SDK Platform 31
 To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager.
#解決辦法
sdkmanager配置
> Failed to install the following SDK components:
     build-tools;30.0.2 Android SDK Build-Tools 30.0.2
     platforms;android-31 Android SDK Platform 31
 The SDK directory is not writable (/android/android-sdk-linux)
#解決辦法
sdkmanager "build-tools;30.0.2"
sdkmanager "platforms;android-31"
  • 二維碼圖片無法顯示
[description-setter] Could not determine description.
#解決辦法,set build description 正則表達(dá)式的參數(shù)需要和控制臺日志輸出的變量配一致
如下面的appQRCodeURL=([a-zA-z]+://[^\s]*)需要匹配控制臺輸出的日志
set build description

控制臺日志輸出
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容