Xcode自动打包和上传蒲公英平台脚本(用python实现)

简介: 工作中,特别是所做项目进入测试阶段,肯定会经常打 Ad-hoc 包给测试人员进行测试,但是我们肯定不想每次进行打包的时候都要进行一些工程的设置修改,以及一系列的 next 按钮点击操作,现在就让这些操作都交给脚本化吧!

介绍

工作中,特别是所做项目进入测试阶段,肯定会经常打 Ad-hoc 包给测试人员进行测试,但是我们肯定不想每次进行打包的时候都要进行一些工程的设置修改,以及一系列的 next 按钮点击操作,现在就让这些操作都交给脚本化吧!

  1. 脚本化中使用如下的命令打包:
xcodebuild -project name.xcodeproj -target targetname -configuration Release -sdk iphoneos `
xcodebuild -workspace name.xcworkspace -scheme schemename -configuration Release -sdk iphoneos
  1. 然后使用 exportArchive 生成 ipa 文件:
xcodebuild -exportArchive -archivePath archiveName.xcarchive 
                          -exportPath filePath 
                          -exportOptionsPlist exprotOptionsPlist.plist 
  1. 清除 build 过程中产生的中间文件
  2. 结合蒲公英分发平台,将 ipa 文件上传至蒲公英分发平台,同时在终端会打印上传结果以及上传应用后该应用的 URL。蒲公英分发平台能够方便地将 ipa 文件尽快分发到测试人员,该平台有开放 API,可避免人工上传。

autobuild.py

打包变量

Usage: autobuild.py [options]
Options:
-h, --help            show this help message and exit
-w name.xcworkspace, --workspace=name.xcworkspace
Build the workspace name.xcworkspace.
-p name.xcodeproj, --project=name.xcodeproj
Build the project name.xcodeproj.
-s schemename, --scheme=schemename
Build the scheme specified by schemename. Required if
building a workspace.
-t targetname, --target=targetname
Build the target specified by targetname. Required if
building a project.
-o output_filename, --output=output_filename
specify output filename

在脚本顶部,有几个全局变量,根据自己的项目情况修改。

WORKSPACE_PATH = 'XXXX.xcworkspace'
SCHEME_NAME = 'XXXXXXXXXX'
CODE_SIGN_IDENTITY = "iPhone Distribution: companyname (9xxxxxxx9A)"
PROVISIONING_PROFILE = "xxxxx-xxxx-xxx-xxxx-xxxxxxxxx"
CONFIGURATION = "Release"
SDK = "iphoneos"
EXPORT_OPTIONS_PLIST = 'ExportOptions.plist' #配置plist的method provisioningProfiles signingCertificate teamID 必须一一对应
OUTPUT_IPA_PATH = '/Users/XXXXX/Desktop/'#是否输出ipa到指定位置进行保存

其中,CODE_SIGN_IDENTITY 为开发者证书标识,可以在 钥匙串访问 ->证书 -> 选中证书右键弹出菜单 -> 显示简介 -> 常用名称 获取,类似 iPhone Distribution: Company name Co. Ltd (xxxxxxxx9A), 包括括号内的内容。

PROVISIONING_PROFILE: 这个是 mobileprovision 文件的 identifier,获取方式: Xcode -> Preferences -> 选中申请开发者证书的 Apple ID -> 选中开发者证书 -> View Details… -> 根据 Provisioning Profiles 的名字选中打包所需的 mobileprovision 文件 -> 右键菜单 -> Show in Finder -> 找到该文件后,除了该文件后缀名的字符串就是 PROVISIONING_PROFILE 字段的内容。 如果Xcode中不配置证书,则设置为空字符串:CODE_SIGN_IDENTITY='',PROVISIONING_PROFILE='',就自动不使用指定证书打包。

蒲公英上传变量

# configuration for pgyer
PGYER_UPLOAD_URL = "https://www.pgyer.com/apiv2/app/upload"
DOWNLOAD_BASE_URL = "http://www.pgyer.com"
USER_KEY = "26dd239e2a66421b33efbe75258fa778"
API_KEY = "531620d42ff23590948175eb4999b42b"
BUILD_INSTALL_TYPE = '2' #1:公开,2:密码安装,3:邀请安装,4:回答问题安装。默认为1公开
BUILD_PASSWORD = '555555'
BUILD_DESCRIPTION = '测试PY上传'

USER_KEYAPI_KEY : 是蒲公英开放 API 的密钥。BUILD_INSTALL_TYPEBUILD_PASSWORDBUILD_DESCRIPTION: 是给测试用户的安装方式和版本更新描述

注意

  1. xcodebuild和Xcode是一一对应的版本,如果Xcode版本过高,会造成xcodebuild异常处理
#查看xcodebuild和Xcode的对应版本
xcodebuild -version
  1. 如果存在多个版本Xcode可以用以下命令进行更换:
sudo xcode-select --switch /Applications/Xcode.app
sudo xcode-select --switch /Applications/Xcode9.4.1.app

GitHub上传地址:github.com/freesan44/X…

目录
相关文章
|
28天前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
65 1
思科设备巡检命令Python脚本大集合
|
24天前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
122 68
|
8天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
34 2
|
10天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
26 3
|
15天前
|
缓存 运维 NoSQL
python常见运维脚本_Python运维常用脚本
python常见运维脚本_Python运维常用脚本
20 3
|
15天前
|
数据采集 JSON 数据安全/隐私保护
Python常用脚本集锦
Python常用脚本集锦
16 2
|
16天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
1月前
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
54 1
Python实用记录(十三):python脚本打包exe文件并运行
|
17天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
23天前
|
JSON 测试技术 持续交付
自动化测试与脚本编写:Python实践指南
自动化测试与脚本编写:Python实践指南
25 1