美文网首页iOS开发
iOS 利用python配置xcode自动化打包

iOS 利用python配置xcode自动化打包

作者: 翻滚的炒勺2013 | 来源:发表于2018-12-10 19:35 被阅读55次
    timg.jpg

    平时在开发过程中需要经常打包给测试,打包的时候不能写代码占用了大量的时间,所以在网上找了一个自动化打包工具,1分钟打好测试包之后是上传到蒲公英.

    下面是配置步骤

    1 - 安装python3
    python3百度网盘地址

    提取密码: p3j0
    

    安装

    image.png image.png

    在命令行模式下输入python3,出现如下界面代表安装成功

    image.png

    安装requests模块

    这个时候可能报错,原因是没有安装requests模块

    No module named 'requests'
    

    打开命令行输入

    pip install requests
    

    这个时候提示找到pip命令,所以要安装homeBrew,在命令行输入命令

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    image.png

    检测是否安装成功

    brew
    

    看到此页面代表安装成功


    image.png

    然后输入

    pip install requests
    

    到现在为止已经配置好了python3环境

    接下配置打包文件 .建立一个后缀名为py的文件

    
    import os
    import requests
    import webbrowser
    import subprocess
    import shutil
    
    import smtplib
    from email.mime.text import MIMEText
    
    appFileFullPath = '/Users/zhaozhiwei/Library/Developer/Xcode/DerivedData/FangShengyun-emvlyojwcscnpddkiopdxrtwyanu/Build/Products/Debug-iphoneos/FangShengyun.app'
    
    PayLoadPath = '/Users/zhaozhiwei/Desktop/Payload'
    packBagPath = '/Users/zhaozhiwei/Desktop/ProgramBag'
    openUrlPath = 'https://www.pgyer.com/manager/dashboard/app/2febccd6f22009f869fe4846a40e36a9'
    downloadUrlPath = 'https://www.pgyer.com/Hgh6'
    
    mail_user = '45329453@qq.com'                                 #发送方邮箱
    mail_pass = 'riatebgvuszcbghe'                                   #填入发送方邮箱的授权码  百度:QQ邮箱授权码如何获取 查看教程
    msg_to = '45329453@qq.com'                                  #收件人邮箱
    mail_namelist = [""]
    #上传蒲公英
    USER_KEY = "52ad35c8d9ec475ae95f3c75bb7dc5fd"
    API_KEY = "601bbfe2432f450beef4f3fa2fc57bc3"
    
    #上传蒲公英
    def uploadIPA(IPAPath):
        if(IPAPath==''):
            print ("没有找到对应上传的IPA包")
            return
        else:
            print ("开始上传到蒲公英")
            url='http://www.pgyer.com/apiv1/app/upload'
            data={
                'uKey':USER_KEY,
                '_api_key':API_KEY,
                'installType':'2',
                'password':'',
                'updateDescription':des
            }
            files={'file':open(IPAPath,'rb')}
            r=requests.post(url,data=data,files=files)
    
    def openDownloadUrl():
        webbrowser.open(openUrlPath)
        print ("\n更新成功\n")
    
    #编译打包流程
    def bulidIPA():
        #删除之前打包的ProgramBag文件夹
        subprocess.call(["rm","-rf",packBagPath])
        #创建PayLoad文件夹
        mkdir(PayLoadPath)
        #将app拷贝到PayLoadPath路径下
        subprocess.call(["cp","-r",appFileFullPath,PayLoadPath])
        #在桌面上创建packBagPath的文件夹
        subprocess.call(["mkdir","-p",packBagPath])
        #将PayLoadPath文件夹拷贝到packBagPath文件夹下
        subprocess.call(["cp","-r",PayLoadPath,packBagPath])
        #删除桌面的PayLoadPath文件夹
        subprocess.call(["rm","-rf",PayLoadPath])
        #切换到当前目录
        os.chdir(packBagPath)
        #压缩packBagPath文件夹下的PayLoadPath文件夹夹
        subprocess.call(["zip","-r","./Payload.zip","."])
        print ("打包成功")
        #将zip文件改名为ipa
        subprocess.call(["mv","payload.zip","Payload.ipa"])
        #删除payLoad文件夹
        subprocess.call(["rm","-rf","./Payload"])
    
    
    #创建PayLoad文件夹
    def mkdir(PayLoadPath):
        isExists = os.path.exists(PayLoadPath)
        if not isExists:
            os.makedirs(PayLoadPath)
            print (PayLoadPath + '创建成功')
            return True
        else:
            print (PayLoadPath + '目录已经存在')
            return False
    
    #发送邮件
    def send_qq_email(title,conen):
        try:
            
            content = "新版本已发布请前往:\n" + downloadUrlPath + " 下载测试" + "\n更新内容:" + conen
            
            msg = MIMEText(str(content))
            #设置标题
            msg["Subject"] = title
            # 发件邮箱
            msg["From"] = mail_user
            #收件邮箱
            msg["To"] = ";".join(mail_namelist)
            # 设置服务器、端口
            s = smtplib.SMTP_SSL("smtp.qq.com", 465)
            #登录邮箱
            s.login(mail_user, mail_pass)
            # 发送邮件
            s.sendmail(mail_user, mail_namelist, msg.as_string())
            s.quit()
            print ("邮件发送成功!")
            return True
        except smtplib.SMTPException:
            print ("邮件发送失败!")
            return False
    
    if __name__ == '__main__':
        des = input("请输入更新的日志描述:")
        bulidIPA()
        uploadIPA('%s/Payload.ipa'%packBagPath)
        openDownloadUrl()
        send_qq_email("App 测试版本更新",des)
    
    

    参数说明:
    appFileFullPath : 项目初始化的时候这个.app是红色的,成功编译一次就会变成黑色,把它直接拖到命令行

    image.png

    获取到路径


    image.png

    PayLoadPath 和packBagPath 替换成你的电脑的用户名

    image.png

    openUrlPath 你的项目蒲公英管理版本的地址

    image.png

    ** downloadUrlPath** 你的项目蒲公英打包完成的下载页

    ![image.png](https://img.haomeiwen.com/i1419035/28c717357da5e8a3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    

    **mail_pass :填入发送方邮箱的授权码 百度:QQ邮箱授权码如何获取 查看教程

    ** USER_KEY和API_KEY**

    点击我的

    image.png 点击我的

    替换掉USER_KEY和API_KEY 保存

    回到命令行模式 输入即可

    python 你的打包文件名.py 
    

    打包完成后自动打开蒲公英页面


    end

    相关文章

      网友评论

        本文标题:iOS 利用python配置xcode自动化打包

        本文链接:https://www.haomeiwen.com/subject/exyrhqtx.html