當前位置:首頁 » 編程軟體 » jenkins編譯ios

jenkins編譯ios

發布時間: 2023-06-04 06:58:11

❶ jenkins ios 自動化打包一定要在mac下嗎

首先搭建起jenkins環境,android官方提供了使用ant編譯打包的腳本,所以要在jenkins系統配置裡面將ant配置好;然後在jenkins裡面新建一個項目,這里列出比較重要的幾項配置: 1、項目源代碼位置,一般就是指定svn吧 2、構建過程添加shell

❷ iOS 的自動構建流程

用來打包做類似事情的工具很多,更主要的是為什麼使用自動構建:

• 效率上,解放出開發人員的時間。也更方便其他同事使用。

• 保證打包的標准,避免配置或環境問題,帶來的失敗。把事情做對,比做快更重要。

• 許可權安全上,通過構建系統集中管理,對於使用者來說是一個黑盒。

• 項目流程上,便於有需求時做 Daily Build 或者 自動測試。

對於 如何安裝 Jenkins 或者 Jenkins 參數配置 之類的基本配置不做涉及。

網上已經有不少詳細的文章進行介紹。比如 手把手教你利用Jenkins持續集成iOS項目 https://www.jianshu.com/p/41ecb06ae95f 。

先介紹整體的構建流程,具體的內容會在下面分步驟介紹.

構建前

• 設置構建名

• 配置 app 圖標水印(build號,分支)

• ruby 腳本根據參數,修改工程 bundleID ,宏等

• 安裝第三方依賴,pod update

執行構建

• xcodebuild clean

• xcodebuild archive

• xcodebuild exportArchive

構建完成

上傳分發平台: 蒲公英/fir/appstore(歷史版本記錄: git tag )

• 符號表處理:上傳 bugly

• 歸檔產物: 上傳 FTP 伺服器

• 清理: 刪除 IPA 等

• 設置構建描述

• 通知: 企業微信 webhook 機器人推送

首先設置我們的構建名稱,我這里使用到幾個參數:

• BUILD_NUMBER ,Jenkins 自帶的參數,代表第幾次構建

• BetaPlatform ,設置的選項參數,代表分發平台。我這里的值分別是:fir,pgyer,appstore

• Mode,設置的選項參數,代表 Xcode 構建的環境設置,為 Snapshot 和 Release

• Branch,Jenkins 自帶的參數,代表 Git 分支名稱

為了打包後進行測試的 APP ,便於定位問題,可以在 App Logo 上打上水印,加入構建使用的 git 分支名,jenkins 構建號,app 版本號 等關鍵信息。

配置圖標水印的流程為:

• 判斷此次是否為 appstore 分發平台。如果是 appstore 的話,將舊有的圖標目錄清理掉,然後將圖標復制到使用的目錄中。

• 如果不是 appstore ,則為測試平台分發,進行水印處理。

因為要使用替換資源的方式,所以准備兩個目錄。

一個目錄作為 源目錄,存放未處理的圖片。一個目錄作為目標目錄,存儲 App Logo 使用的圖片。

為什麼使用兩個圖片目錄存儲?假設只用一個,原圖為A,當第一次處理,圖片為 A1水印圖片,當第二次再拿到的圖片,已經是被處理過的 A1水印圖片了,而不是原圖A 。

這里注意 icons_path 為存放原圖的地址, icons_dest_path 為要修改使用的目標路徑。命名為 AppIcon-Internal。

可以參考 iOS APP圖標版本化 https://www.jianshu.com/p/a37e114b7e66

關於 version 的獲取, 因為目前版本有改動,使用 ruby 去獲取,腳本會在後面提供鏈接:

還有一個臨時存放路徑,要提前創建好這個文件夾:

添加水印主要使用到了命令行工具 ImageMagick ,所以要先安裝:

具體的腳本如下:

這里使用 ruby 實現參數修改(當然也可使用 python 等各種語言,自己方便就 OK )。

目前做的操作:

• 區分是否 beta 版本 -- 修改定義 beta 宏 的真假值

• 不同分發平台,使用不同 bundleID -- 對 bundleID 進行修改

腳本里依靠 CocoaPods 開源的 Xcodeproj ,對工程的 name.xcodeproj/project.pbxproj 文件進行配置修改。

python 的話,可以使用這個項目 mod-pbxproj

安裝/更新第三方庫,這里使用到的是 Cocoapods,其它的包管理器可使用其它方式。

在開始之前,我們要做些准備工作,比如設置要使用的變數,常量。

需要提前寫好,盡量避免散落。

舊有的方式,是直接通過 info.plist 取:

然而在新的 Xcode 取 版本號 和 bundleID 的方式發生變化,現在 info.plist 里的值是變數名,取版本號為 $(MARKETING_VERSION) , bundleID 為 $(PRODUCT_BUNDLE_IDENTIFIER) .

結局思路是通過腳本到工程配置里去獲取,下面使用 ruby 實現了這兩個目的。

我們將 App 與 Jenkins 的 build number 設置為同一個,方便需要時,查看構建的參數以及符號表等:

加入 security 解鎖操作的原因,是在子節點 ssh 登錄上去之後,keychain 沒有被解鎖.導致打包失敗.
解決方案是用 security unlock-keychain 命令將證書解鎖。

另外可以通過命令查看描述文件的詳細信息 包括UUID等信息

對工程進行構建打包,主要在於使用 Xcodebuild .
分為三個階段:

• Clean

• Archive

• Export

如果在執行過程中又不喜歡日誌輸出的,可以在命令行最後加上

每次構建時,對工程進行 clean ,保證沒有其它影響的因素。
使用xcodebuild clean [-optionName]...清除編譯過程生成文件,使用如下:

非 cocoapods 的工程,將 -workspace "${APP_NAME}.xcworkspace" 換成 -project ${APP_NAME}.xcodeproj 即可。
新版本的 Xcode 有了新的構建系統,使用 -UseModernBuildSystem= 來做新舊區分。

Xcodebuild archive

更新到Xcode9.0後,之前寫的自動打包腳本不可用了。

需要添加 -allowProvisioningUpdates,獲取訪問鑰匙串許可權的關鍵所在,設置了這個欄位就會在打包過程彈框請求獲取鑰匙串內容許可權。

特別說明的是,exportOptionsPlist 一定要檢查,不同的環境和分發平台要選擇對。

最簡單方式,就是調好需要的環境後,直接手動 archive ,export 出來,使用產物里的 exportOptionsPlist 文件。

檢查對應路徑是否有 **.ipa 文件:

這里分為 蒲公英,fir,appstore 三個平台,上傳 IPA.

下面使用的三個上傳命令,最好先提前在機器上實驗可以正常用再構建。

上傳 bugly

進行完所有操作後,對於產物做一次保存,需要時可以用上。

首先將文件壓縮

通過 FTP 插件,把 zip 文件上傳到歸檔的路徑下

刪除 IPA 等文件,注意的是,當狀態為 success 才清理,避免有時上傳出問題,可以進行手動上傳。

設置構建描述

完成後,企業微信 webhook 機器人推送,效果如下:

這里設置成可選項,避免頻繁打擾其它同事。腳本如下:

[1] https://juejin.im/post/6844903843994533896
[2] https://www.cnblogs.com/zhou--fei/p/11371019.html
[3] https://www.jianshu.com/p/4f4d16326152
[4] https://www.jianshu.com/p/f50053d50436
[5] https://dengweijun.com/2018/12/26/Xcode%E8%87%AA%E5%8A%A8%E6%89%93%E5%8C%85%E9%82%A3%E4%BA%9B%E4%BA%8B/

❸ iOS-Jenkins-TestFlight自動打包流程

一、准備一台mac電腦
二、安裝jenkins
打開終端運行:
brew install Jenkins
如果沒有安裝brew,請前往 brew 根據提示安裝。
至少需要安裝java1.8 ,如果沒有安裝會有提示, java
java安裝完畢,鏈接 launchd 配置文件

啟動jenkins
jenkins
打開Safari輸入: http://localhost:8080/
就能看到jenkins已經運行起來了,如果你更換了埠就是你後來設置的埠。

接下來打開Jenkins後會讓去一個填寫password的頁面如下圖,存儲password的地方就是圖片上那行紅色字體目錄下,使用終端 cat + 紅色字體路徑就看到了

然後將我們得到的password輸入到「Administrator password「中,即可進入如下界面,接著安裝一些建議的插件(左邊的),請等待,並全部安裝成功在進行下一步。

安裝完成之後,輸入賬戶密碼,登陸。開始jenkins

二、cocoapod環境安裝
項目中一般會使用cocoapod管理第三方庫。這個時候如果使用jenkins自動打包,就需要安裝好cocoapod環境

三、jenkins使用
1、安裝插件
Keychains and Provisioning Profiles Management
Xcode integration
在系統管理-> 插件管理中搜索插件

配置Keychains and Provisioning Profiles Management

請先配置好p12和Provisioning Profiles文件
需要上傳login.keychain文件,該文件獲取方法,在終端中輸入
cd ~/Library/Keychains
將login.keychain文件upload之後,會出現下圖的界面,根據需要將證書添加進去即可,但是由於macOS10.12以及以後的系統裡面沒有login.keychain文件,只有login.keychain-db,可以復制出來刪除-db,upload就好了。(上傳keychain,路徑用自己改名後的那個)

然後添加Provisioning Profiles,上傳方法和上傳login.keychain一樣,去選擇Provisioning Profiles文件,然後upload,然後結果如下圖,藍色框內的是固定格式的/Users/用戶名/Library/MobileDevice/Provisioning Profiles

配置好之後保存即可

3.開始配置任務
創建一個任務,自由風格的任務

General
創建一個自由風格的任務,然後在選擇丟棄舊的構建,至於天數和保持的最大個數,按照自己的需求來就好

源碼管理
接下來是源碼管理,在Repository URL裡面添加你的git地址,我這里添加的是http的,如果你的項目是使用的ssh的,那麼就將git開頭的地址填寫上,然後點擊Add添加你的git帳號,如果你的事ssh的,將ssh的密匙填寫上,具體的自己網路一下就好咯,我就不多寫了,結果如圖

構建觸發器
接下來是構建觸發器,也就是什麼時候觸發自動打包我這里填寫的是H 20 * * 這個意思就是H小時然後,後面跟著數字,在後面就是日月年, 代表的我認為是每次都觸發,也就是每天每月每年,但是Jenkins的時間不是絕對的,一般都是在隨機在半點,也就是設置20點,大概會在20:30分左右會觸發,如果需要兩個時間,那麼格式可以這樣H 20,22 * * *結果如圖

構建環境
在構建環境裡面勾選Keychains and Code Signing Identities和Mobile Provisioning Profiles,Keychains and Code Signing Identities是打包需要的證書,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己選擇的,我的如圖

構建環境第一次Code Signing Identity和PP文件可能有些不一樣。應用,保存一下就可以了。

添加腳本

執行cocoapod腳本必須要在第一個

執行打包並且上傳到TestFlight腳本

關於exportOptionsPlist
請參考 exportOptionsPlist
把exportOptionsPlist添加到infoPlist同一層並push到git

關於

問題的解決。
證書不能使用自動管理,需要手動。

感謝

熱點內容
flash免費上傳網站 發布:2025-02-12 19:14:03 瀏覽:190
買腳本一般都在哪裡 發布:2025-02-12 19:08:07 瀏覽:823
戀舞刷分腳本se下載 發布:2025-02-12 18:56:53 瀏覽:8
c語言大小寫轉換程序 發布:2025-02-12 18:55:23 瀏覽:524
三星耳機壞了怎麼配置 發布:2025-02-12 18:54:46 瀏覽:975
簡易編程語言 發布:2025-02-12 18:48:07 瀏覽:523
咋上傳視頻 發布:2025-02-12 18:45:50 瀏覽:288
python的包機制 發布:2025-02-12 18:45:49 瀏覽:448
sqlserver網路實用工具 發布:2025-02-12 18:38:56 瀏覽:767
劍與家園新伺服器什麼時候轉國 發布:2025-02-12 18:38:05 瀏覽:434