iOS-自動(dòng)化打包上傳到Fir.im或者蒲公英

一倒彰、fastlane自動(dòng)打包

fastlane自動(dòng)打包方式审洞,點(diǎn)擊跳轉(zhuǎn)。

二待讳、 python環(huán)境安裝 , 自己Google吧. 文章很多 .

1芒澜、安裝python包管理器

pip?? curl https://bootstrap.pypa.io/get-pip.py -o get-pip.pysudo python get-pip.py

2、安裝requets庫

sudo pip install requests

二创淡、上傳到蒲公英

具體python代碼如下 .

#!/usr/bin/env python

#coding=utf-8

import os

import commands

import requests

import webbrowser

'''

使用注意事項(xiàng):該腳本基于python2.7

1痴晦、將工程的編譯設(shè)備選成 Gemeric iOS Device

2、command + B編譯

3琳彩、執(zhí)行腳本文件

'''

#(此處需要替換)編譯的app的位置

appFileFullPath = '/Users/guanliyuancc/Desktop/SeresNew/build/ios/iphoneos/Runner.app'

#Release-iphoneos

#(此處需要替換)

PayLoadPath = '/Users/guanliyuancc/Desktop/Payload'

packBagPath = '/Users/guanliyuancc/Desktop/ProgramBag'

#將此處打開的鏈接改為蒲公英對應(yīng)app的鏈接

openUrl = 'https://www.pgyer.com/apptest'

#(此處需要替換)上傳蒲公英的key

USER_KEY = ""

API_KEY = ""

#上傳蒲公英

def uploadIPA(IPAPath):

? ? if(IPAPath==''):

? ? ? ? print "\n*************** 沒有找到對應(yīng)上傳的IPA包 *********************\n"

? ? ? ? return

? ? else:

? ? ? ? print "\n***************開始上傳到蒲公英*********************\n"

? ? ? ? url='http://www.pgyer.com/apiv1/app/upload'

? ? ? ? data={

? ? ? ? ? ? 'uKey':USER_KEY,

? ? ? ? ? ? '_api_key':API_KEY,

? ? ? ? ? ? 'installType':'2',

? ? ? ? ? ? 'password':'123456',

? ? ? ? ? ? 'updateDescription':des

? ? ? ? }

? ? ? ? files={'file':open(IPAPath,'rb')}

? ? ? ? r=requests.post(url,data=data,files=files)

def openDownloadUrl():

? ? webbrowser.open(openUrl,new=1,autoraise=True)

? ? print "\n*************** 更新成功 *********************\n"

#編譯打包流程

def bulidIPA():

? ? #打包之前先刪除packBagPath下的文件夾

? ? commands.getoutput('rm -rf %s'%packBagPath)

? ? #創(chuàng)建PayLoad文件夾

? ? mkdir(PayLoadPath)

? ? #將app拷貝到PayLoadPath路徑下

? ? commands.getoutput('cp -r %s %s'%(appFileFullPath,PayLoadPath))

? ? #在桌面上創(chuàng)建packBagPath的文件夾

? ? commands.getoutput('mkdir -p %s'%packBagPath)

? ? #將PayLoadPath文件夾拷貝到packBagPath文件夾下

? ? commands.getoutput('cp -r %s %s'%(PayLoadPath,packBagPath))

? ? #刪除桌面的PayLoadPath文件夾

? ? commands.getoutput('rm -rf %s'%(PayLoadPath))

? ? #切換到當(dāng)前目錄

? ? os.chdir(packBagPath)

? ? #壓縮packBagPath文件夾下的PayLoadPath文件夾夾

? ? commands.getoutput('zip -r ./Payload.zip .')

? ? print "\n*************** 打包成功 *********************\n"

? ? #將zip文件改名為ipa

? ? commands.getoutput('mv Payload.zip Payload.ipa')

? ? #刪除payLoad文件夾

? ? commands.getoutput('rm -rf ./Payload')

#創(chuàng)建PayLoad文件夾

def mkdir(PayLoadPath):

? ? isExists = os.path.exists(PayLoadPath)

? ? if not isExists:

? ? ? ? os.makedirs(PayLoadPath)

? ? ? ? print PayLoadPath + '創(chuàng)建成功'

? ? ? ? return True

? ? else:

? ? ? ? print PayLoadPath + '目錄已經(jīng)存在'

? ? ? ? return False

if __name__ == '__main__':

? ? des = input("請輸入更新的日志描述:")

? ? bulidIPA()

? ? uploadIPA('%s/Payload.ipa'%packBagPath)

? ? openDownloadUrl()


自動(dòng)打包上傳步驟.

環(huán)境腳本配置ok -> xcode build app -> 打開終端 執(zhí)行python 自己的python腳本的位置(例如/Users/guanliyuancc/Desktop/自動(dòng)化打包工具代碼/DaoBaoToPuGY.py)

三誊酌、上傳到Fir.im

上傳到fir需要配置fir命令環(huán)境

sudo gem install fir-cli

如下是上傳到fir.im的python代碼

#!/usr/bin/env python

#coding=utf-8

import os

import commands

import requests

import webbrowser

import subprocess

'''

使用注意事項(xiàng):該腳本基于python2.7

1、將工程的編譯設(shè)備選成 Gemeric iOS Device

2汁针、command + B編譯

3术辐、執(zhí)行腳本文件

'''

#(此處需要替換)編譯的app的位置

appFileFullPath = '/Users/guanliyuancc/Desktop/XXX/build/ios/iphoneos/Runner.app'

#(此處需要替換)桌面放臨時(shí)生成的playload的位置

PayLoadPath = '/Users/guanliyuancc/Desktop/Payload'

packBagPath = '/Users/guanliyuancc/Desktop/ProgramBag'

#(此處需要替換)fir.im當(dāng)前app的展示頁

openUrl = 'https://fir.im/apppackage'

#(此處需要替換)上傳到fir.im的token

Fir_token = "XXXXXXd8da4fd56699e72ba7ac26b46"

def openDownloadUrl():

? ? webbrowser.open(openUrl,new=1,autoraise=True)

? ? print "\n*************** 更新成功 *********************\n"

def loginToFirIm():

? ? loginCmd = 'fir login -T %s' %(Fir_token)

? ? process = subprocess.Popen(loginCmd, shell=True)

? ? process.wait()

? ? loginReturnCode = process.returncode

? ? if loginReturnCode != 0:

? ? ? ? print ("login faild")

? ? else:

? ? ? ? print ("login success")

? ? ? ? publishToFirIm('%s/Payload.ipa'%packBagPath)


# publish

def publishToFirIm(IPAPath):

? ? des = input("version desprition:")

? ? publishCmd = 'fir publish %s -c %s'%(IPAPath,des)

? ? process = subprocess.Popen(publishCmd, shell=True)

? ? process.wait()

? ? publishReturnCode = process.returncode

? ? if publishReturnCode != 0:

? ? ? ? print ("publish faild")

? ? else:

? ? ? ? print ("publish success")

? ? ? ? openDownloadUrl()

#編譯打包流程

def bulidIPA():

? ? #打包之前先刪除packBagPath下的文件夾

? ? commands.getoutput('rm -rf %s'%packBagPath)

? ? #創(chuàng)建PayLoad文件夾

? ? mkdir(PayLoadPath)

? ? #將app拷貝到PayLoadPath路徑下

? ? commands.getoutput('cp -r %s %s'%(appFileFullPath,PayLoadPath))

? ? #在桌面上創(chuàng)建packBagPath的文件夾

? ? commands.getoutput('mkdir -p %s'%packBagPath)

? ? #將PayLoadPath文件夾拷貝到packBagPath文件夾下

? ? commands.getoutput('cp -r %s %s'%(PayLoadPath,packBagPath))

? ? #刪除桌面的PayLoadPath文件夾

? ? commands.getoutput('rm -rf %s'%(PayLoadPath))

? ? #切換到當(dāng)前目錄

? ? os.chdir(packBagPath)

? ? #壓縮packBagPath文件夾下的PayLoadPath文件夾夾

? ? commands.getoutput('zip -r ./Payload.zip .')

? ? print "\n*************** 打包成功 *********************\n"

? ? #將zip文件改名為ipa

? ? commands.getoutput('mv Payload.zip Payload.ipa')

? ? #刪除payLoad文件夾

? ? commands.getoutput('rm -rf ./Payload')

#創(chuàng)建PayLoad文件夾

def mkdir(PayLoadPath):

? ? isExists = os.path.exists(PayLoadPath)

? ? if not isExists:

? ? ? ? os.makedirs(PayLoadPath)

? ? ? ? print PayLoadPath + '創(chuàng)建成功'

? ? ? ? return True

? ? else:

? ? ? ? print PayLoadPath + '目錄已經(jīng)存在'

? ? ? ? return False

if __name__ == '__main__':

? ? bulidIPA()

? ? loginToFirIm()

自動(dòng)打包上傳步驟.
環(huán)境腳本配置ok -> xcode build app -> 打開終端 執(zhí)行python 自己的python腳本的位置(例如/Users/guanliyuancc/Desktop/自動(dòng)化打包工具代碼/DaoBaoToFirIm.py)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市施无,隨后出現(xiàn)的幾起案子辉词,更是在濱河造成了極大的恐慌,老刑警劉巖猾骡,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瑞躺,死亡現(xiàn)場離奇詭異敷搪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)幢哨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門赡勘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捞镰,你說我怎么就攤上這事闸与。” “怎么了岸售?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵践樱,是天一觀的道長。 經(jīng)常有香客問我凸丸,道長拷邢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任屎慢,我火速辦了婚禮瞭稼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腻惠。我一直安慰自己环肘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布妖枚。 她就那樣靜靜地躺著廷臼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绝页。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天寂恬,我揣著相機(jī)與錄音续誉,去河邊找鬼。 笑死初肉,一個(gè)胖子當(dāng)著我的面吹牛酷鸦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播牙咏,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼臼隔,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妄壶?” 一聲冷哼從身側(cè)響起摔握,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丁寄,沒想到半個(gè)月后氨淌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泊愧,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年盛正,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了删咱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盐杂,到底是詐尸還是另有隱情映跟,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布症昏,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏聪富。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一著蟹、第九天 我趴在偏房一處隱蔽的房頂上張望墩蔓。 院中可真熱鬧,春花似錦萧豆、人聲如沸奸披。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽阵面。三九已至,卻和暖如春洪鸭,著一層夾襖步出監(jiān)牢的瞬間样刷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國打工览爵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留置鼻,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓蜓竹,卻偏偏與公主長得像箕母,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子俱济,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

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