如題
由于測試環(huán)境經(jīng)常需要不斷地修改-打包-測試-修改...,如果使用xcode原生的打包方式費事費時,或者使用fastlane,Jenkins等自動集成工具,但是前期配置麻煩且費力,后期問題不斷又不好解決,于是有了以下內容:
目的:修改一個參數(shù)即可實現(xiàn)自動打包上傳一步搞定
開始:
NO.1 添加script phase
`
Snip20181211_1.png
`
NO.2 添加獲取你的python運行地址 (一般是/usr/bin/python)
不確定的可以終端運行命令: whereis python 獲取
NO.3 拷貝以下代碼到文件中
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import requests
import webbrowser
import subprocess
import shutil
# if need update package please set 1
updatePackage = 0
appFileFullPath = '/Users/Cube/Library/Developer/Xcode/DerivedData/TaoMei-cgateidmhzznixahnazxrlluggia/Build/Products/Debug-iphoneos/TaoMei.app'
PayLoadPath = '/Users/Cube/Desktop/Payload'
packBagPath = '/Users/Cube/Desktop/ProgramBag'
openUrlPath = 'https://www.pgyer.com/manager/dashboard/app/你的appkey'
USER_KEY = "你的userkey"
API_KEY = "你的apikey"
def uploadIPA(IPAPath):
if(IPAPath==''):
print("\n*************** NONE IPA*********************\n")
return
else:
print("\n***************BEGIN UPLOAD *********************\n")
url='http://www.pgyer.com/apiv1/app/upload'
data={
'uKey':USER_KEY,
'_api_key':API_KEY,
'installType':'2',
'password':'',
'updateDescription':""
}
files={'file':open(IPAPath,'rb')}
r=requests.post(url,data=data,files=files)
def openDownloadUrl():
os.chdir('/Users/Cube/Desktop')
subprocess.call(["rm","-rf",packBagPath])
webbrowser.open(openUrlPath,new=1,autoraise=True)
print ("\n*************** SUCCESS *********************\n")
def bulidIPA():
subprocess.call(["rm","-rf",packBagPath])
mkdir(PayLoadPath)
subprocess.call(["cp","-r",appFileFullPath,PayLoadPath])
subprocess.call(["mkdir","-p",packBagPath])
subprocess.call(["cp","-r",PayLoadPath,packBagPath])
subprocess.call(["rm","-rf",PayLoadPath])
os.chdir(packBagPath)
subprocess.call(["zip","-r","./Payload.zip","."])
print ("\n*************** PACK DONE *********************\n")
subprocess.call(["mv","payload.zip","Payload.ipa"])
subprocess.call(["rm","-rf","./Payload"])
def mkdir(PayLoadPath):
isExists = os.path.exists(PayLoadPath)
if not isExists:
os.makedirs(PayLoadPath)
print(PayLoadPath + 'BUILD DONE')
return True
else:
print (PayLoadPath + 'BUILD FALSE')
return False
if __name__ == '__main__':
if updatePackage:
bulidIPA()
uploadIPA('%s/Payload.ipa'%packBagPath)
openDownloadUrl()
else:
print ("\n*************** NO PACKAGE *********************\n")
這里請注意拷貝格式,python語法對縮進額對齊極其嚴格.
NO.4 去蒲公英主頁創(chuàng)建你的APP,并獲取相應的key,修改項目中的參數(shù)
Snip20181211_2.png
end
需要打包的時候修改updatePackage
參數(shù)為1即可,連接真機編譯,完成自動上傳到蒲公英主頁并且打開你的瀏覽器刷新.