因为苹果和蒲公英提供了打包和上传的脚本命令。所以自动打包脚本都是简单的组合。
回忆我们手动打包的时候
选择 archive
第二步
导出 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打包需要)
profiles 这边的key 为buildID
value 为配置文件的文件名
===============使用
ipa文件夹拖进项目根目录
终端运行 python ipa.py
默认配置
1 会在桌面生成 项目名_build 文件夹
2 文件夹中会有生成的 archive文件和打包好的ipa 文件
3 每次运行都会覆盖掉旧的ipa 文件