IOS自動(dòng)打包上傳至蒲公英

自動(dòng)打包分為兩部分

-生成archive文件
-從archive文件中導(dǎo)出ipa包

生成archive包

在這里就需要使用到xcodebuild命令

對(duì)于普通的project命令為:

xcodebuild archive -project project的名稱(chēng).xcodeproj -scheme 應(yīng)用名稱(chēng) -configuration 構(gòu)造配置 -archivePath 期望保存的路徑

對(duì)于workspace 則命令為

xcodebuild archive -workspace workspace的名稱(chēng).xcworkspace -scheme 應(yīng)用名稱(chēng) -configuration 構(gòu)造配置 -archivePath 期望保存的路徑

關(guān)于exportOptionPlist 是打包的配置信息(如是否支持bitecode,證書(shū)與描述文件.....)大概如下


在我的腳本中并沒(méi)有對(duì)其進(jìn)行自動(dòng)生成,我的建議是手動(dòng)打包一次 然后在打好的包中找到該文件保存起來(lái) 一勞永逸

當(dāng)archive文件生成成功后 則須從中導(dǎo)出ipa包

xcodebuild -exportArchive -archivePath archive文件路徑 -exportPath 打包后期望保存的路徑 -exportOptionsPlist 導(dǎo)出配置的相關(guān)信息的plist文件

上傳至蒲公英

根據(jù)蒲公英文檔 API2.0 命令行如下

curl -F 'file=@ipa包的路徑' -F '_api_key=蒲公英提供的AppKey' https://www.pgyer.com/apiv2/app/upload

在了解的步驟之后 只需要腳本將這些命令行組合起來(lái) 在其中插入自己需要的操作,如對(duì)測(cè)試人員的通知,當(dāng)前狀態(tài)的輸出等等....(我沒(méi)有這塊的需求,就沒(méi)有寫(xiě)了)

最后附上代碼 因?yàn)榇a不長(zhǎng) 我就直接寫(xiě)在這里了

#! /usr/bin/env python3
import os

#######################  須用戶(hù)配置   ##############################


#將要上新的版本描述
updateDescription = ''

# 項(xiàng)目路徑
projectPath = ''

# 項(xiàng)目名稱(chēng)
projectName = '

# 打包路徑
IPASavePath = ''

# exportOptionPlist文件路徑
exportOptionPlistPath = ''


#蒲公英App_Key
pgy_appKey = ''

##################################################################
#生成的Archive文件的路徑
archivePath = IPASavePath + '/' +projectName + 'Archive'

#生成的ipa包的路徑
IpaPath = IPASavePath + '/Apps/' + projectName + '.ipa'


# 清屏
def clearScreen():
    os.system('clear')
    os.chdir(projectPath)

# 生成archive文件
def makeArchive():
    os.system('xcodebuild archive -workspace %s.xcworkspace -scheme %s -configuration Release -archivePath %s'%(projectName,projectName,archivePath))



# 生成iPa包
def makeIpa():
    os.system('xcodebuild -exportArchive -archivePath %s.xcarchive -exportPath %s -exportOptionsPlist %s'%(archivePath,IPASavePath,exportOptionPlistPath))

# 上傳至蒲公英
def upLoadToPGYer():

     res = (os.popen("curl -F 'file=@%s' -F '_api_key=%s' -F'updateDescription=%s' https://www.pgyer.com/apiv2/app/upload"%(IpaPath,pgy_appKey,updateDescription))).readlines()

 #自動(dòng)打包
def automaticPack():
    clearScreen()
    makeArchive()
    makeIpa()
    upLoadToPGYer()

automaticPack()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 前言 眾所周知,現(xiàn)在App的競(jìng)爭(zhēng)已經(jīng)到了用戶(hù)體驗(yàn)為王,質(zhì)量為上的白熱化階段。用戶(hù)們都是很挑剔的。如果一個(gè)公司的推廣...
    偏偏就是禰閱讀 9,079評(píng)論 34 59
  • 由于公司業(yè)務(wù)的需要,經(jīng)常需要打企業(yè)包并上傳到蒲公英上,手工打包上傳太浪費(fèi)人力了,所以前幾天研究了一下自動(dòng)化,小有收...
    healthbird閱讀 1,252評(píng)論 0 5
  • 前言 眾所周知,現(xiàn)在App的競(jìng)爭(zhēng)已經(jīng)到了用戶(hù)體驗(yàn)為王,質(zhì)量為上的白熱化階段。用戶(hù)們都是很挑剔的。如果一個(gè)公司的推廣...
    閑云清煙閱讀 2,541評(píng)論 1 4
  • 本文始發(fā)于我的博文詳解Shell腳本實(shí)現(xiàn)iOS自動(dòng)化編譯打包提交,現(xiàn)轉(zhuǎn)發(fā)至此。 目錄 前言 Shell腳本涉及的工...
    zackzheng閱讀 44,597評(píng)論 95 173
  • 關(guān)于 iOS 自動(dòng)化打包的一點(diǎn)看法 如果你曾經(jīng)試過(guò)做多 target 的項(xiàng)目,到了測(cè)試人員要測(cè)試包的時(shí)候,你就會(huì)明...
    Tsui_YuenHong閱讀 6,444評(píng)論 18 63