精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python實現(xiàn)iOS自動化打包詳解

開發(fā) 后端 移動開發(fā) 自動化
可能是最簡單的iOS自動化打包方式:無需手動配置證書,無需填寫配置文件名稱,更無需配置Bundle Identifer,總之無需很多繁瑣配置,讓打包流程一句命令完成!下面將會分享兩種打包方式,一種是快速打包(打包時間就在一眨眼),一種是基于shenzhen(速度會比較慢),都實現(xiàn)了一行命令完成打包并上傳蒲公英!

可能是最簡單的iOS自動化打包方式:無需手動配置證書,無需填寫配置文件名稱,更無需配置Bundle Identifer,總之無需很多繁瑣配置,讓打包流程一句命令完成!下面將會分享兩種打包方式,一種是快速打包(打包時間就在一眨眼),一種是基于shenzhen(速度會比較慢),都實現(xiàn)了一行命令完成打包并上傳蒲公英!

一:基于編譯的打包

這種打包方式應(yīng)該是目前所有打包方式中最快的,就是編譯工程--找到.app文件--新建Payload文件夾--拷貝.app到Payload文件夾--壓縮成zip--更改后綴名為ipa--完成!

1.我們演示過程如下圖: 


手動打包

2.其實上面的打包過程快的話2分鐘左右可以完成,作為一個追求效率的攻城獅,怎么可能滿足在此,而基于測試包的頻繁性,我們肯定不想一直做這樣重復(fù)性而沒多少技術(shù)含量的工作,接下來,我們就把這個過程自動化! 

自動化打包1

在上圖中,我們只需要執(zhí)行python腳本,可以看到桌面很快生成了一個ProgramBag的文件夾,打開文件夾,彩蛋就在里面了!由于我寫的腳本里包含了上傳蒲公英的代碼,這個包有28.3M,網(wǎng)絡(luò)不太好會影響上傳時間,真正的打包時間是可以忽略不記的,也就是執(zhí)行腳本,敲擊回車就好了的事! 


自動化打包2

這里我們將打好的包自動上傳到蒲公英網(wǎng)站,完成后自動打開下載地址,這個過程在網(wǎng)絡(luò)好的條件下2分鐘左右完成,99.9%的時間是發(fā)在上傳包上!這里上傳完成會自動打開到下載的網(wǎng)頁。

3.演示過程完畢,接下來我們就來看看原理是怎么實現(xiàn)的吧!下面開始講解Python的具體代碼~ 靜心看完,相信你能看懂,說不定自己也可以很快寫一個腳本,用來解決平常重復(fù)性的工作。下面是核心打包腳本: 

  1. #編譯打包流程 
  2. def bulidIPA(): 
  3.     mkdir(PayLoadPath) 
  4.     #將app拷貝到PayLoadPath路徑下 
  5.     commands.getoutput('cp -r %s %s'%(appFileFullPath,PayLoadPath)) 
  6.     #在桌面上創(chuàng)建packBagPath的文件夾 
  7.     commands.getoutput('mkdir -p %s'%packBagPath) 
  8.     #將PayLoadPath文件夾拷貝到packBagPath文件夾下 
  9.     commands.getoutput('cp -r %s %s'%(PayLoadPath,packBagPath)) 
  10.     #刪除桌面的PayLoadPath文件夾 
  11.     commands.getoutput('rm -rf %s'%(PayLoadPath)) 
  12.     #切換到當前目錄 
  13.     os.chdir(packBagPath) 
  14.     #壓縮packBagPath文件夾下的PayLoadPath文件夾夾 
  15.     commands.getoutput('zip -r ./Payload.zip .'
  16.     print " 
  17. *************** 打包成功 ********************* 
  18.     #將zip文件改名為ipa 
  19.     commands.getoutput('mv Payload.zip Payload.ipa'
  20.     #刪除payLoad文件夾 
  21.     commands.getoutput('rm -rf ./Payload'

有沒有似曾相識的感覺?看綠色文字的部分,其實就是liunx命令,通過腳本包裝了一層,可以理解為我們以前在terminal手動輸入的命令,現(xiàn)在是自動幫我們輸入并執(zhí)行了,大大解放了我們的雙手!

  1. #將app拷貝到PayLoadPath路徑下 commands.getoutput('cp -r %s %s'%(appFileFullPath,PayLoadPath)) 

我們來分析上面這一句,我用OC的偽代碼來實現(xiàn)的話對應(yīng)下面這句:所以上面的%s相當于OC中的%@,是一種格式符,后面的appFileFullPath代表我們工程的.app存放的路徑,PayLoadPath代表我們在桌面上新建的PayLoad文件路徑

  1. copy("%@,%@",A,B) 

然后結(jié)合注釋(自戀下:注釋寫的還算挺詳細的)基本上代碼的執(zhí)行過程我們就一目了然了,至于前面的commands.getoutput是基于commands組件的命令,理解為可以在terminal執(zhí)行命令即可,下面有一句代碼需要說明:這是一句切換當前目錄的命令

  1. os.chdir(packBagPath) 

等價于

  1. commands.getoutput('cd %s'%packBagPath) 

不要問我為什么沒有用下面的命令,那是因為這句命令我這邊執(zhí)行不成功,被坑了很久,至于原因,還不知道為什么(如果你解決了,歡迎騷擾我),所以用上面python提供的命令代替了。

4.至此,我們將第一步的手動打包過程實現(xiàn)了自動話,如果不需要上傳蒲公英,上面的9行命令就夠用了!接下來我們實現(xiàn)上傳蒲公英的腳本:

 

  1. #上傳蒲公英 
  2. def uploadIPA(IPAPath): 
  3.     if(IPAPath==''): 
  4.         print " 
  5. *************** 沒有找到對應(yīng)上傳的IPA包 ********************* 
  6.         return 
  7.     else
  8.         print " 
  9. ***************開始上傳到蒲公英********************* 
  10.         url='http://www.pgyer.com/apiv1/app/upload' 
  11.         data={ 
  12.             'uKey':USER_KEY, 
  13.             '_api_key':API_KEY, 
  14.             'installType':'2'
  15.             'password':''
  16.             'updateDescription':"測試自動化打包" 
  17.         } 
  18.         files={'file':open(IPAPath,'rb')} 
  19.         r=requests.post(url,data=data,files=files) 
  1. def uploadIPA(IPAPath): 
  2. 表示定義了一個函數(shù)uploadIPA,接受一個參數(shù) 

requests是一個網(wǎng)絡(luò)請求的組件,我們可以把它類比為AFNetWorking,data是要傳遞的參數(shù),files是要傳遞的文件,至于上傳的參數(shù)key都是根據(jù)蒲公英提供的API來寫的。上面的password代表安裝app時所需要的密碼,同時還有兩個參數(shù),USER_KEY和API_KEY,在蒲公英應(yīng)用的位置可以找到,如圖: 

Python實現(xiàn)iOS自動化打包詳解

KEY說明

 5.最后一步就是上傳成功,幫我們自動打開下載頁: 

  1. def openDownloadUrl(): 
  2.     webbrowser.open(r'https://www.pgyer.com/manager/dashboard/app/40c633aa8dc0ba15191632860558825e',new=1,autoraise=True
  3.     print " 
  4. *************** 更新成功 ********************* 

webbrowser也是一個組件庫,這些組件庫在使用時,和OC一樣,都要先import,里面的地址代表蒲公英上應(yīng)用的地址,拷過來粘貼即可!

6.整體的腳本就完了,最后在使用時配置下面的幾個參數(shù)即可,一次配置,永久使用!

  1. appFileFullPath = '/Users/Qinz/Library/Developer/Xcode/DerivedData/DDDS-bcghxucdqelptddawpsfmvjtoefm/Build/Products/Debug-iphoneos/DDDS.app' 
  2. PayLoadPath = '/Users/Qinz/Desktop/Payload' 
  3. packBagPath = '/Users/Qinz/Desktop/ProgramBag' 
  4. #上傳蒲公英 
  5. USER_KEY = "61ded40a68axxxxxxe9fd278acd2" 
  6. API_KEY = "a4fe2724dc6d8cxxxxxxf1994eec219e" 

上圖中appFileFullPath就是我們工程文件中.app的地址,至于PayLoadPath和packBagPath只需要你將"Qinz"用戶名修改為你自己電腦的用戶名即可!

下圖演示快速設(shè)置appFileFullPath的過程: 


appFileFullPath

到此,第一種自動化打包方式講解完畢!

二:基于shenzhen打包,shenzhen是一個打包相關(guān)的庫,使用也非常方便,比第一中打包方式還要少一個路徑配置,當然打包的速度相對比較慢,要使用下面的腳本,首先得安裝shenzhen,具體可參考https://github.com/nomad/shenzhen 

  1. def buildIpa(): 
  2.     start = time.time() 
  3.     print " 
  4. *************** IPA包生成中 ********************* 
  5.      #commands.getoutput('ipa build')  #使用shenzheng打包ipa 
  6.     p = subprocess.Popen('ipa build', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
  7.     for line in p.stdout.readlines(): 
  8.         print line, 
  9.     retval = p.wait() 
  10.     end = time.time() 
  11.     print "--------- 打包耗時:%s秒 ---------"%(end-start) 
  12.     print " 
  13. *************** IPA包生成成功,準備上傳蒲公英 ********************* 

這里我主要是將shenzhen的打包命令"ipa build"封裝在pythone腳本中,同時記錄了打包的時間,經(jīng)過測試打包的時間在4~7分鐘左右,這個腳本中只需要配置蒲公英的USER_KEY和API_KEY,然后cd到當前工程目錄,執(zhí)行腳本即可!打包成功會在當前工程目錄下生成ipa包和符號化文件!使用如下: 


腳本打包

這里的描述日志是更新到蒲公英的填寫的更新日志,最后打包完成記錄如下,同時也是支持蒲公英上傳的,最后完成如圖: 

Python實現(xiàn)iOS自動化打包詳解

image.png
Python實現(xiàn)iOS自動化打包詳解
WechatIMG30.jpeg

可以看到,打包時間耗時將近5分鐘,在我看來時間還是有點長的,所以要想快速打包測試,使用第一種方式能提高不少工作效率!

踩坑之旅:完成這個腳本的過程中,可以說是一部心酸史,一把辛酸淚,踩了不少坑(主要是之前不懂腳本),網(wǎng)上很多關(guān)于自動化打包的文章,下載下來執(zhí)行后就沒成功過,有的是需要配置一些參數(shù),繁瑣的不像自動化,目前很流行的自動化打包庫fastlane,在我使用時,按照官方的教程打包就沒有一次成功過,還有就是報錯后都不知道怎么解決,打包就像碰運氣,心里完全沒底,可以說被折磨的體無完膚,經(jīng)過多次失敗的經(jīng)歷后,我決定要自己擼一個腳本,于是學(xué)習(xí)下Python腳本的語法,也就有了現(xiàn)在的這個版本!關(guān)于AppStore的包,還是建議使用Xcode打包!

最后,附上這兩個腳本的下載地址:

iOS自動化打包腳本:https://github.com/ys323945/iOSAutoPage/tree/master

責(zé)任編輯:未麗燕 來源: cocoachina
相關(guān)推薦

2024-06-17 10:34:12

2011-08-16 15:36:47

iPhone應(yīng)用測試

2018-11-01 14:50:01

RedisNoSQL數(shù)據(jù)庫

2010-03-03 16:36:02

Python PAMI

2020-03-18 09:23:24

Python數(shù)據(jù)SQL

2017-07-21 09:14:21

2015-10-21 15:08:25

電纜自動化

2023-10-06 22:12:40

Python開發(fā)工業(yè)系統(tǒng)

2022-07-05 08:26:10

Python報表自動化郵箱

2017-12-17 21:58:18

2024-06-11 10:41:14

2017-04-10 12:25:32

iOS自動化測試

2014-04-16 14:15:01

QCon2014

2018-08-31 09:55:38

Ansible網(wǎng)絡(luò)自動化

2009-09-04 13:55:04

C#文檔自動化

2023-04-06 07:09:25

自動化部署Actions

2023-02-15 08:21:22

2022-11-15 17:07:40

開發(fā)自動化前端

2010-09-27 09:13:36

Visual Stud

2021-01-28 10:28:33

云計算基礎(chǔ)設(shè)施自動化IT
點贊
收藏

51CTO技術(shù)棧公眾號

国语精品免费视频| 永久免费精品影视网站| 国产91在线视频观看| 国产高清美女一级毛片久久| 国产在线看一区| 91国内精品久久| 99热99这里只有精品| 日韩精品一区二区三区免费视频| 欧美性20hd另类| 国产精品无码乱伦| 久久精品蜜桃| 成人在线一区二区三区| 国产精品视频最多的网站| 久久久香蕉视频| 欧美熟乱15p| 日韩黄色av网站| 亚洲一区二区图片| 另类一区二区三区| 色综合激情久久| 精品少妇在线视频| а√资源新版在线天堂| 中文字幕精品一区二区三区精品| 国新精品乱码一区二区三区18| 97人妻精品一区二区三区软件 | 国产乱码77777777| 伊人久久久大香线蕉综合直播 | 欧美不卡1区2区3区| 国产av精国产传媒| 加勒比av一区二区| 国产精品第一视频| 日日噜噜噜噜人人爽亚洲精品| 欧美日韩在线大尺度| www.亚洲人.com| 波多野结衣一二三四区| 免费精品国产的网站免费观看| 亚洲成人精品视频| 久久免费精品国产| 91成人在线精品视频| 欧美一区二区三区免费观看视频 | 一本色道久久综合狠狠躁篇的优点 | 俺也去精品视频在线观看| 亚洲国产av一区| 亚洲激情77| 亚洲欧美精品在线| 麻豆精品免费视频| 精品一区欧美| 亚洲日本欧美日韩高观看| 免费看黄色aaaaaa 片| aiss精品大尺度系列| 日韩西西人体444www| 一级黄色大片儿| 精品国产伦一区二区三区观看说明 | 精品国内产的精品视频在线观看| 久久久久久成人网| 日韩成人精品一区| 久久精品国产一区二区电影| 黑人操日本美女| 综合一区av| 久久免费视频网站| 日本高清www免费视频| 国产精品最新自拍| 国产精品18久久久久久麻辣| 中文字幕一区二区三区四区欧美| 天堂一区二区在线免费观看| 国产精品久久二区| 91好色先生tv| 国产成人精品综合在线观看 | av一区二区高清| 日韩资源在线观看| 欧美三根一起进三p| 伊人成年综合电影网| 欧美在线视频网站| 又色又爽又黄无遮挡的免费视频| 国产中文一区二区三区| 超碰97在线播放| 日色在线视频| 国产精品美女久久福利网站| 777久久精品一区二区三区无码| 国产偷倩在线播放| 欧美性高跟鞋xxxxhd| 国产又黄又猛又粗又爽的视频| 日韩午夜视频在线| 精品欧美乱码久久久久久 | 精品一区在线| 久久这里只有精品99| 国产精品不卡av| 日韩电影免费一区| 岛国视频一区免费观看| 欧美色18zzzzxxxxx| 国产精品超碰97尤物18| 大西瓜av在线| 九色成人搞黄网站| 日韩欧美国产精品一区| 国产精品高清无码在线观看| 91成人超碰| 欧美中在线观看| 99久久一区二区| 国产日韩欧美a| 国产爆乳无码一区二区麻豆| 电影亚洲一区| 亚洲福利视频在线| 国产免费一区二区三区四区| 国产精品美女久久久| 亚洲最大av在线| 黄色视屏网站在线免费观看| 亚洲一区二区在线视频| 污污网站免费看| 秋霞综合在线视频| 欧美裸体xxxx极品少妇| 自拍偷拍色综合| 99久久婷婷国产综合精品| 中文视频一区视频二区视频三区| 午夜影视一区二区三区| 欧美va在线播放| 国产传媒视频在线| 可以看av的网站久久看| 国产免费高清一区| 尤物在线网址| 在线播放中文一区| 手机av在线不卡| 国产日产高清欧美一区二区三区| 99视频免费观看| 国产在线高清理伦片a| 色香色香欲天天天影视综合网| 在线免费看黄色片| 欧美 日韩 国产一区二区在线视频| 国产成人精品免费视频| 亚州男人的天堂| 亚洲国产视频a| 初高中福利视频网站| 午夜精品视频一区二区三区在线看| 国产激情999| 久草在线网址| 色综合色综合色综合| 亚洲av成人片无码| 伊人久久大香线蕉综合热线| 国产精品9999久久久久仙踪林| 免费高清在线观看| 欧美在线观看视频一区二区 | 欧美国产日韩a欧美在线观看| 欧美成人精品影院| 亚洲天堂手机版| 国产性天天综合网| 成人在线免费在线观看| 免费福利视频一区| 欧美激情手机在线视频| 亚洲国产午夜伦理片大全在线观看网站 | 波多野结衣在线网址| 蜜臀a∨国产成人精品| 神马影院午夜我不卡影院| 精品国产免费人成网站| 精品视频在线播放免| 天天干在线播放| www精品美女久久久tv| 欧美黄网站在线观看| 西野翔中文久久精品字幕| 538国产精品视频一区二区| 神马久久久久| 欧美综合视频在线观看| 国产不卡在线观看视频| 精品一区二区三区蜜桃| 日本a级片在线观看| 国产伦精品一区二区三区免费优势| 欧美黑人性生活视频| 五月天婷婷激情网| 欧美影视一区在线| 日韩在线一卡二卡| 大白屁股一区二区视频| 午夜肉伦伦影院| 色乱码一区二区三区网站| 91亚洲人电影| 国产在线看片免费视频在线观看| 亚洲欧美日韩天堂| 亚洲综合网av| 一区二区欧美在线观看| 国产精品九九九九九| 蜜臀精品久久久久久蜜臀| 国产香蕉一区二区三区| 美女一区二区在线观看| 国产精品入口福利| 国产美女情趣调教h一区二区| 亚洲区中文字幕| 国产精品一区二区免费视频| 午夜亚洲福利老司机| 免费网站在线高清观看| 国产伦精品一区二区三区免费迷| 欧美视频免费看欧美视频| 色棕色天天综合网| 7777精品伊久久久大香线蕉语言| 欧美办公室脚交xxxx| 色老头一区二区三区| 亚洲国产精品视频在线| 欧美在线观看视频一区二区| 久久香蕉精品视频| 国产精品美女久久久久久久| 亚洲精品国产成人av在线| 蜜桃视频一区二区三区在线观看| 免费在线黄网站| 日本一二区不卡| 国产偷国产偷亚洲高清97cao| 高清在线一区| 欧美一级大片在线观看| 影音先锋中文在线视频| 国产亚洲精品91在线| 三级小视频在线观看| 91精品一区二区三区久久久久久| 6080午夜伦理| 亚洲电影中文字幕在线观看| 日韩欧美视频免费观看| 2023国产精品自拍| 在线观看视频你懂得| 日本中文字幕一区二区有限公司| 日韩一级性生活片| 欧美一区免费| 9999在线观看| 欧美在线色图| 欧美亚洲一级二级| 国产精品中文字幕制服诱惑| 97视频资源在线观看| 日韩精品一级毛片在线播放| 国产不卡视频在线| 国产777精品精品热热热一区二区| 美乳少妇欧美精品| 久操视频在线免费播放| 揄拍成人国产精品视频| 香蕉视频免费在线看| 欧美v日韩v国产v| 精品人妻伦一二三区久久 | 国产精品678| 国产传媒av在线| 久久久久久69| 国精产品一区一区三区mba下载| 久久这里只有精品视频首页| 欧美成人精品一区二区男人看| 亚洲性夜色噜噜噜7777| 裸体xxxx视频在线| 亚洲男人天堂九九视频| 色视频免费在线观看| 精品无码久久久久久国产| 高潮毛片7777777毛片| 精品国产凹凸成av人网站| 国产高中女学生第一次| 日韩一区二区免费视频| 性一交一乱一精一晶| 日韩欧美电影一区| 国产77777| 亚洲激情视频网| 色哟哟在线观看| 亚洲社区在线观看| 亚洲乱亚洲乱妇| 日韩一区在线视频| sm国产在线调教视频| 久久久亚洲福利精品午夜| 波多野结衣精品| 91av在线看| 欧美电影免费观看| 国产精品青青在线观看爽香蕉| 婷婷丁香久久| 97欧洲一区二区精品免费| 国内自拍欧美| 欧美日韩精品久久| 欧美成人激情| 成人一级生活片| 日韩午夜电影| 黄色三级视频在线| 黄网站免费久久| 五月天丁香社区| 2024国产精品| 神马久久精品综合| 夜夜嗨av一区二区三区网页 | 性欧美一区二区| 中文字幕亚洲一区二区av在线| 久草视频免费播放| 一本久道久久综合中文字幕| 亚洲天堂中文字幕在线| 日韩欧美的一区二区| 飘雪影视在线观看免费观看| 综合av色偷偷网| 国内在线视频| 国产精品久久激情| 免费欧美网站| 欧美精品欧美精品| 91精品天堂福利在线观看| www.av中文字幕| 六月丁香婷婷久久| 国产激情视频网站| 亚洲天堂2014| 免费污污视频在线观看| 日韩欧美一级在线播放| 国产尤物视频在线| 欧美国产精品人人做人人爱| av亚洲一区二区三区| 高清不卡日本v二区在线| 欧美日一区二区| 久久亚洲中文字幕无码| 久久精品国产精品亚洲精品| 国产黑丝一区二区| 亚洲少妇30p| 中文字幕精品视频在线观看| 精品久久久久久亚洲综合网| 国产69久久| 91精品国产高清| 国产精品一区二区美女视频免费看| 麻豆蜜桃91| 亚洲私拍自拍| 在线免费黄色网| 国产清纯白嫩初高生在线观看91 | 久久精品女人天堂av免费观看| 99国产在线视频| 五月婷婷亚洲| 无限资源日本好片| 久久影音资源网| 日本少妇激情舌吻| 欧美一级在线视频| 麻豆传媒视频在线观看| 国产精品高潮粉嫩av| 欧美尿孔扩张虐视频| 日韩成人三级视频| 国产伦精品一区二区三区视频青涩 | 欧美视频一区二区三区四区| 午夜小视频免费| 欧美精品久久久久久久久| 国产精选久久| 樱花www成人免费视频| 日本美女一区二区| 成人黄色a级片| 在线一区二区三区四区| 男女av在线| 欧美最猛性xxxx| 亚洲裸色大胆大尺寸艺术写真| www.射射射| 成人黄页毛片网站| 精品小视频在线观看| 精品国产一区二区国模嫣然| 欧美理论电影| http;//www.99re视频| 欧美日韩mv| 69xxx免费视频| 亚洲一区二区欧美日韩| 国产91绿帽单男绿奴| 国内精品中文字幕| 天堂日韩电影| 成人久久久久久久久| 久久精品亚洲乱码伦伦中文| www.久久久久久久| 伊人男人综合视频网| 国产黄色精品| 一本—道久久a久久精品蜜桃| 国产在线乱码一区二区三区| 欧美日韩国产精品综合| 精品日韩99亚洲| 日韩电影免费看| 日本一区二区三区四区在线观看 | 欧美欧美午夜aⅴ在线观看| av女优在线| 91人成网站www| 国产一区观看| 丝袜美腿中文字幕| 欧美日韩精品一区视频| av网站在线免费看推荐| 国产精品对白刺激久久久| 香蕉久久夜色精品| 特级西西人体高清大胆| 欧美一区二区在线不卡| av在线最新| 亚洲v国产v| 国产高清在线精品| 亚洲精品午夜国产va久久成人| 国产婷婷色综合av蜜臀av| 国产精品诱惑| 成人在线播放网址| 国产亚洲欧美色| 国产伦精品一区二区三区视频痴汉| 欧美激情视频一区| 久久av综合| 日本在线视频播放| 色综合视频一区二区三区高清| 免费网站看v片在线a| 久久99国产精品99久久| 美洲天堂一区二卡三卡四卡视频| 午夜写真片福利电影网| 亚洲一二在线观看| 日韩精品视频中文字幕| 国产熟人av一二三区| 一区二区三区精密机械公司| 国内在线免费高清视频| 操人视频欧美| 老色鬼精品视频在线观看播放| 日本天堂在线视频| 精品国产一区二区三区久久久狼| 视频一区中文字幕精品| 九色porny91| 午夜视频一区二区三区| 香蕉视频在线播放| 久久99国产精品99久久| 国产成人h网站| 中文字幕一区二区久久人妻| 97在线精品国自产拍中文| 亚洲91久久| 久久久久亚洲AV成人无在|