学习了秒级打包之后,我自己搞了一个傻瓜脚本

135 阅读1分钟

看了LinXunFeng大佬这篇文章,我才知道不必每次都打包,还可以这样发包,不过大佬的脚本太难懂了,我自己写了一个,搭配vscode,每次只要按一下F5就可以发包,简直太爽了,这里分享一下自己的代码,只需要填入你自己的蒲公英appkey就可以发包了

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#Filename :appArchive.py
#Datatime :2022/01/26 14:59:20
#Author :vicnic
import os
import shutil
from zipfile import ZipFile
import requests

#.app的路径
app_path = '/Users/apple/Library/Developer/Xcode/DerivedData/MergeDragon-gdggjgmohmdofbepykqwoctqwmzi/Build/Products/Debug-iphoneos/MergeDragon.app'
#把包先拷贝到下载文件夹准备开干
destin_path = '/Users/apple/Downloads/Payload'
#zip生成的路径
zip_path = '/Users/apple/Downloads'
#蒲公英的appkey
pgy_appkey = ''

def start():
    app_name = app_path.split('/')[-1]
    if (os.path.exists(destin_path)==False):
        os.makedirs(destin_path)
    final_path =  destin_path+'/'+app_name
    shutil.copytree(app_path, final_path)
    os.chdir(zip_path)
    zip_file_name = 'Payload'
    folder2zip(zip_file_name)
    ipa_path = 'Payload.ipa'
    os.rename(zip_file_name+'.zip',ipa_path)
    ipa_file = {"file":open(ipa_path,"rb")}
    ipa_byte = os.path.getsize(ipa_path)
    r = requests.post('https://www.pgyer.com/apiv2/app/upload',data= {'_api_key':pgy_appkey},files = ipa_file,stream=True)
    print(r.content)
    shutil.rmtree(zip_file_name)
    os.remove(ipa_path)


def folder2zip(folder):                               #文件夹打包为zip的函数
    zipfile_name = os.path.basename(folder) + '.zip'                    
    if not os.path.exists(zipfile_name):          #检查压缩包是否存在,如果已存在则询问是否继续
        backupZip(folder)
    else:
        response = input("Zipfile exists. Coutinue?('q' for quit): ")
        if response != 'q':
            backupZip(folder)

def backupZip(folder):                                #这个函数只做文件夹打包的动作,不判断压缩包是否存在             
    zipfile_name = os.path.basename(folder) + '.zip'    #压缩包和文件夹同名
    with ZipFile(zipfile_name, 'w') as zfile:           #以写入模式创建压缩包
        for foldername, subfolders, files in os.walk(folder):    #遍历文件夹
            # print('Adding files in ' + foldername +'...')
            zfile.write(foldername)
            for i in files:
                zfile.write(os.path.join(foldername,i))
                # print('Adding ' + i)
    print('Zip Done.')

if __name__ == '__main__':
    start()