开发工具集iOS 工具集

iOS自动打包上传蒲公英脚本(python)

2017-12-13  本文已影响284人  奇董

因为苹果和蒲公英提供了打包和上传的脚本命令。所以自动打包脚本都是简单的组合。

回忆我们手动打包的时候

第一步 image.png
选择 archive

第二步


image.png

导出 ipa
总结就2步:
archive ---------> ipa
我们来看下 xcode tools 提供的这2个打包命令

archive

xcodebuild archive 
           -workspace 项目名称.xcworkspace (非cocoapods项目使用 -project 项目名称.xcodeproj)
           -scheme 项目名称 
           -configuration 构建版本(Debug or Release) 
           -archivePath archive包存储路径  
           clean archive  清理

这里
configuration 默认release archivePath也有个默认路径,不过需要指定一个自定义路径,export ipa 需要使用

export ipa

xcodebuild -exportArchive -archivePath archive文件的地址.xcarchive
                          -exportPath 导出ipa文件路径 
                          -exportOptionsPlist exportOptionsPlist文件路径  
                          -allowProvisioningUpdates 允许配置更新

配合这2个命令 就可以打包中ipa

之后来看蒲公英给的上传命令

curl -F "file=@{$filePath}" \
-F "uKey={$uKey}" \
-F "_api_key={$apiKey}" \
https://www.pgyer.com/apiv1/app/upload

{$filePath}是应用安装包文件的路径
{$uKey}是开发者的用户 Key,在应用管理-API中查看
{$apiKey}是开发者的 API Key,在应用管理-API中查看


脚本放置文件结构
--项目文件目录
----项目文件
-------ipa打包文件夹
------------ipa.py
------------info.plist

py 命令

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# created by dq

import os,sys

path = os.getcwd()

# **********************需要填的信息**************************
# 项目名称
project_name =  "xxx"
# 项目类型
project_type = "xcworkspace"

#蒲公英
api_key = "xxxx"
user_key = "xxxxx"
# ****************************************************************


# 项目目录
project_path = os.path.dirname(path) + "/" + project_name

# 打包模式
development_mode = "Release"

# archive 文件存放路径
archive_path = "~/Desktop/%s_build/%s" %(project_name,project_name)
archive_name = archive_path + ".xcarchive"
ipa_file_path = "~/Desktop/%s_build/ipa"% project_name


def archiveWorkspace():
    archive_project_type = "" #
    if project_type == "xcworkspace":
        archive_project_type = "workspace"
    else:
        archive_project_type = "project"
    archive_com = "xcodebuild archive -%s %s.%s -scheme %s -configuration %s -archivePath %s  clean archive" % (archive_project_type,project_path,project_type,project_name,development_mode,archive_path)
    os.system(archive_com)

    ipa_com = "xcodebuild -exportArchive -archivePath %s -exportPath %s -exportOptionsPlist info.plist -allowProvisioningUpdates" % (archive_name,ipa_file_path)
    os.system(ipa_com)

def upload_pgyer():
    ipa_path = os.path.expanduser('~') + "/Desktop/%s_build/ipa"% project_name  + "/" + project_name + ".ipa"
    upload_com = "curl -F 'file=@%s' -F 'uKey=%s' -F '_api_key=%s' https://qiniu-storage.pgyer.com/apiv1/app/upload" % (ipa_path,user_key,api_key)
    os.system(upload_com)

    print "上传成功"

        
if __name__ == "__main__":
    archiveWorkspace()
    upload_pgyer()


info.plist(Xcode9打包需要)


image.png

profiles 这边的key 为buildID
value 为配置文件的文件名

===============使用
ipa文件夹拖进项目根目录
终端运行 python ipa.py

默认配置
1 会在桌面生成 项目名_build 文件夹
2 文件夹中会有生成的 archive文件和打包好的ipa 文件
3 每次运行都会覆盖掉旧的ipa 文件

文件地址 https://github.com/dongqihouse/iOSAutoPackage

上一篇下一篇

猜你喜欢

热点阅读