Jenkins自動化構(gòu)建項目打包的實現(xiàn)(上)

探究了一下jenkins自動化構(gòu)建項目打包的流程實現(xiàn):本篇文章主要講的是實現(xiàn),在下一篇文章中,實現(xiàn)腳本自動化

引用:

Jenkins做的操作其實很簡單,它只是將我們平時做的每一步重復(fù)的操作自動化了而已。因此,iOS中Jenkins要做的分為以下幾步:
1.拉取遠(yuǎn)端代碼
2.由于某種條件觸發(fā)后開始自動編譯,打包
3.將生成的ipa文件上傳到指定位置,供測試下載測試
這三步中,每一步Jenkins什么都沒做,它只是調(diào)用了Mac中的一些工具,具體的說就是使用了命令行工具。有的做成了可視化的插件,有的還是要通過自己寫命令來實現(xiàn)。典型的就是編譯和打包的命令是調(diào)用xcodebuild命令。

首先,我們通過命令行進(jìn)行打包ipa文件


    /*
     * 本命令指示clean清理,即使不使用,也不影響后面的操作
     */
    xcodebuild clean -workspace Rongshu.xcworkspace -scheme 項目名 -configuration Release或者Debug

    /*
     * param: archive文件的路徑,比如:/Users/bairong/Desktop/demo demo直接就是archive包的名字了
     */
    xcodebuild archive -workspace 項目名.xcworkspace -scheme 項目名 -archivePath param    
    
    
    /*
     * param1 : 第二步中生成的archive包的路徑
     * param2 : 盛放.ipa包的文件夾路徑 /User/XXX/Desktop/XXX
     * param3 : ExportOptions.plist文件的路徑,這個文件需要我們先創(chuàng)建好,然后傳入路徑,這個文件里,可以指定development、ad-hoc,我們用xcode生成的ipa文件夾中有這個文件
     */
    xcodebuild -exportArchive -archivePath "<param1>" -exportPath param2 -exportOptionsPlist "<param3>"
    
    
    
遇見問題:
    1. 第一次很順利,第二次報錯code = 9,證書找不到,然后處理措施:
        1.關(guān)閉自動匹配描述證書,不行 
        2.在ExportOptions.plist中增加provisioningProfiles這個key,然后寫入證書信息,還是不行 
        3. 將證書在鑰匙串中從登錄移動到系統(tǒng),還是不行
     額...然后所有都還原,重啟終端客戶端,又好了。。。
    
參考鏈接:
https://blog.csdn.net/yuanmengong886/article/details/78214978
https://blog.csdn.net/qq_34047841/article/details/54144149

ipa文件

實際上就是一個 zip 文件,我們使用系統(tǒng)的 zip 命令來生成 ipa 文件即可。(可以解壓)

文件夾目錄:
    Payload: .app文件
    SwiftSupport: 一些iphoneos .dylib文件
    Symbols: .symbols文件

如何生成讓設(shè)備可以直接安裝的掃描二維碼、html鏈接

蘋果允許用 itms-services 協(xié)議來直接在 iphone/ipad 上安裝應(yīng)用程序

前提條件:

  1. 一個指定格式的plist文件(其中包含ipa的URL地址)
<?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>items</key>
        <array>
            <dict>
                <key>assets</key>
                <array>
                    <dict>
                        <key>kind</key>
                        <string>software-package</string>
                        <key>url</key>
                        <string>https://xxx.com/packageDownloader/ios/xxx/xxx.ipa</string>
                    </dict>
                </array>
                <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>bundle id</string>
                    <key>bundle-version</key>
                    <string>版本號</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>title</key>
                    <string>xxx</string>
                </dict>
            </dict>
        </array>
    </dict>
</plist>
  1. 一個符合蘋果規(guī)范的鏈接(其中包含plist文件的url):

     itms-services://?action=download-manifest&url=https://****/***.plist
    

坑1: Safari直接訪問itms-services:/ / 協(xié)議鏈接,會提示打不開該網(wǎng)頁,因為鏈接無效,在網(wǎng)頁上通過點擊a超鏈接或者掃描二維碼(二維碼信息為這個鏈接)就會彈出彈窗,下載應(yīng)用

坑2: 在iOS 7.1版本之后,通過itms-service安裝應(yīng)用時,要求itms-service協(xié)議后面的url的值即plist文件的地址必須為https地址,且設(shè)備必須信任此https服務(wù)器的SSL證書(網(wǎng)上有說:必須是公網(wǎng)ssl,自簽名及免費(fèi)的https不可用。這個限于條件就沒驗證了)

?著作權(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)容