iOS史上最简单的自动打包上传工具,xcode编译完成自动进行。

如题

由于测试环境经常需要不断地修改-打包-测试-修改...,如果使用xcode原生的打包方式费事费时,或者使用fastlane,Jenkins等自动集成工具,但是前期配置麻烦且费力,后期问题不断又不好解决,于是有了以下内容:

目的:修改一个参数即可实现自动打包上传一步搞定

开始:

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 去蒲公英主页创建你的APP,并获取相应的key,修改项目中的参数

Snip20181211_2.png

end

需要打包的时候修改updatePackage参数为1即可,连接真机编译,完成自动上传到蒲公英主页并且打开你的浏览器刷新.

so easy!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 可能是最简单的iOS自动化打包方式:无需手动配置证书,无需填写配置文件名称,更无需配置Bundle Identif...
    Qinz阅读 23,011评论 123 128
  • 本文始发于我的博文详解Shell脚本实现iOS自动化编译打包提交,现转发至此。 目录 前言 Shell脚本涉及的工...
    zackzheng阅读 44,644评论 95 173
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,029评论 3 119
  • Fastlane 使用大致流程如下: 思路弄清楚后操作时,参照demo中的文件修改即可。参数可以自定义配置(参数说...
    TeeMo_Yan阅读 5,027评论 0 5
  • 当我悲伤的时候,我知道没人能帮我处理悲伤,当我意识到这一点的时候,我就不再苦苦的向外寻求了。
    木木的心心阅读 151评论 0 0