auto packaging for iOS

Related tags

Distributionpackaging
Overview

iOS Auto Packaging

iOS自动打包脚本

准备

  • 脚本第一次执行之前 先检查依赖, packaging目录下终端执行
  • pip3 install -r requirements.txt

运行

cd packaging
packaging.py -h <help> -s <scheme> -m <message> -ab <addBuildNumber> -pgy <pgy> -as <appstore> -dm <distributionMethod>

配置

  • configs.py 脚本的一些基本配置, 一些文件路径需要根据项目进行修改
  • config.json 打包的相关配置, 运行脚本前先配置该文件的一些参数
  • build目录是打包后的文件,建议加入到.gitignore

命令行参数

packaging.py -s <scheme> -m <message> -ab <addBuildNumber> -pgy <pgy> -as <appstore>
-h      help
-s      scheme: xcode project schemes
-m      message: app update message.
-ab     addBuildNumber: a boolean value, weather auto increase build number or not. yes will +1, no do nothing.
-pgy    pgy: a boolean value, weather upload ipa to pgy or not. 
-as    appstore: a boolean value, weather upload ipa to appstore or not.

命令行交互

  • 输入 ("yes", "YES", "Yes", "y", "true", "True", "t", "1", "Y") 为 true
  • 输入("no", "n", "false", "False", "FALSE", "f", "0", "0.0", "", "none", "[]", "{}", "N") 为 False

参考文档:

config.json

"project_name": 项目名,
"project_scheme_list": 需要打包的scheme,
"project_scheme_index": project_scheme_list对应的index
"apple_account_team_id": apple developer account teamID,
"upload_pgy_enable": 是否上传pgy,
"pgy_api_key": pgy_api_key,
"upload_app_sotre_enable": 是否上传App Store,
"upload_app_store_account_type" : 上传App Store账号类型 1 使用账号/密码, 2使用apikey/apiIssuer
"apple_account_user":  apple 账号,
"apple_account_password": apple 账号密码 ,
"apple_account_apiKey": apple账号apiKey,
"apple_account_apiIssuer": apple账号apiIssuer,
"send_email_enable": 是否发送邮件,
"email_receivers": 邮件收件人 list,
"add_build_number_enable": 是否增加build number,
"log_enable": 是否导出log,
"provisioning_profiles": {
            bunddleId: mobileprovisioning
        },
"distribution_method" : development, app-store, ad-hoc,

xcodebuild 参数

xcodebuild -help

compileBitcode 参数类型:Bool
该参数告诉Xcode是否需要通过bitcode重新编译,需要与app中的Enable Bitcode配置一致。

destination 参数类型:String
该参数用来确认当前app是本地导出还是上传到Apple的服务器。可以填写的值为export、upload,默认值为export。

distributionBundleIdentifier 参数类型:String
该参数用来格式化包内可用目标的bundle identifier。

embedOnDemandResourcesAssetPacksInBundle参数类型:Bool
该参数在非app store的导出类型下有效。如果app使用了On Demand Resources功能,该选项为YES时,app将会加载所有的资源,可以在没有服务器支持下使用该app。如果没有配置onDemandResourcesAssetPacksBaseURL选项,则默认值为YES。

generateAppStoreInformation
参数类型:Bool
该参数在app store的导出类型下有效。在iTMSTransporter上传时判断是否生成App Store的相关信息。默认值为NO。

iCloudContainerEnvironment参数类型:String

manifest 参数类型:Dictionary
该参数在非app store的导出类型下有效。该参数用于web上安装测试应用包使用。该字典包含appURL、displayImageURL、fullSizeImageURL,如果使用了On Demand Resources,还需要配置assetPackManifestURL。

method 参数类型:String
该参数确定Xcode该如何导出应用包。可用的选项为:app-store、validation、ad-hoc、package、enterprise、development, 、developer-id和mac-application。默认值为development。

onDemandResourcesAssetPacksBaseURL 参数类型:String
该参数在非app store的导出类型下有效。如果app使用了On Demand Resources,并且embedOnDemandResourcesAssetPacksInBundle配置不是YES,则需要配置该字段。该配置确定app如何下载On Demand Resources资源。

provisioningProfiles 参数类型:Dictionary
该参数在手动配置签名下生效。指定包内所有可执行文件的描述文件。其中key为可执行文件对应的bundle identifier,value为描述文件的文件名或UUID。

signingCertificate 参数类型:String
该参数在手动配置签名下生效。可以配置为证书名称、SHA-1 Hash或者自动选择。其中自动选择允许Xcode自动选择最新可以使用的证书,可选值为:”iOS Developer”、”iOS Distribution”、”Developer ID Application”、”Apple Distribution”、”Mac Developer”和”Apple Development”。默认值和导出类型相关。

signingStyle 参数类型:String
该选项用来确定签名方式,可选值为manual和automatic。如果app配置为自动签名,打包前可以修改此配置,否则该配置会被忽略。

stripSwiftSymbols
参数类型:Bool 该参数用来确认是否需要对swift库进行裁剪。默认值为YES。

teamID 参数类型:String
该参数表明导出包使用的开发者ID。

thinning 参数类型:String
该参数在非app store的导出类型下有效。使用该参数可以打包出指定设备的精简包。可选项为(不精简)、(生成一个通用包和所有精简包)或者指定设备的标识符(如:”iPhone7, 1”)。默认值为。

uploadBitcode 参数类型:Bool
该参数在app store的导出类型下有效。用来配置导出的包是否包含bitcode。默认值为YES。

uploadSymbols 参数类型:Bool
该参数在app store的导出类型下有效。用来配置导出的包是否包含符号表。默认值为YES

Owner
DeeCo
DeeCo
The Application can convert the .py file into exe for faster transformation and can result to build an app in a single click

PEXEY PEXEY Is a high robust py to exe app made top on pyinstaller this application is for the developer who constantly keep making py to exe apps IMP

Aaris Kazi 11 Dec 15, 2022
A modern Python application packaging and distribution tool

PyOxidizer PyOxidizer is a utility for producing binaries that embed Python. The over-arching goal of PyOxidizer is to make complex packaging and dist

Gregory Szorc 4.5k Jan 07, 2023
FreezeUI is a python package that creates applications using cx_freeze and GUI by converting .py to .exe .

FreezeUI is a python package use to create cx_Freeze setup files and run them to create applications and msi from python scripts (converts .py to .exe or .msi .

4 Aug 25, 2022
Anaconda is the OS installer used by Fedora, RHEL, CentOS and other Linux distributions.

Anaconda is the OS installer used by Fedora, RHEL, CentOS and other Linux distributions. Documentation Documentation for the Anaconda install

Red Hat Installer Engineering Team 454 Jan 08, 2023
shiv is a command line utility for building fully self contained Python zipapps as outlined in PEP 441, but with all their dependencies included.

shiv shiv is a command line utility for building fully self-contained Python zipapps as outlined in PEP 441, but with all their dependencies included!

LinkedIn 1.5k Dec 28, 2022
executable archive format

XAR XAR lets you package many files into a single self-contained executable file. This makes it easy to distribute and install. A .xar file is a read-

Facebook Incubator 1.5k Dec 29, 2022
Auto locust load test config and worker distribution with Docker and GitHub Action

Auto locust load test config and worker distribution with Docker and GitHub Action Install Fork the repo and change the visibility option to private S

Márk Zsibók 1 Nov 24, 2021
modified py2exe to support unicode paths

modified py2exe to support unicode paths

debinstaller - A tool to install .deb files in any distro.

debinstaller A tool to install .deb files in any distro. Installation for debinstaller

Manoj Paramsetti 6 Nov 06, 2022
Python-easy-pack For Linux/Unix, Changed by laman28

Python-easy-pack For Linux/Unix, Changed by laman28

LMFS 2 Jan 28, 2022
auto packaging for iOS

iOS Auto Packaging iOS自动打包脚本 准备 脚本第一次执行之前 先检查依赖, packaging目录下终端执行 pip3 install -r requirements.txt 运行 cd packaging packaging.py -h help -s scheme

DeeCo 17 Jul 23, 2022
Psgcompiler A PySimpleGUI Application - Transform your Python programs in Windows, Mac, and Linux binary executables

psgcompiler A PySimpleGUI Application "Compile" your Python programs into an EXE for Windows, an APP for Mac, and a binary for Linux Installation Old-

PySimpleGUI 77 Jan 07, 2023
local pypi server (custom packages and auto-mirroring of pypi)

localshop A PyPI server which automatically proxies and mirrors PyPI packages based upon packages requested. It has support for multiple indexes and t

Michael van Tellingen 383 Sep 23, 2022
Nuitka Organization 8k Jan 07, 2023
A library and tool for generating .pex (Python EXecutable) files

PEX Contents Overview Installation Simple Examples Integrating pex into your workflow Documentation Development Contributing Overview pex is a library

Pants Build 2.2k Jan 01, 2023
Subpar is a utility for creating self-contained python executables. It is designed to work well with Bazel.

Subpar Subpar is a utility for creating self-contained python executables. It is designed to work well with Bazel. Status Subpar is currently owned by

Google 550 Dec 27, 2022
Freeze (package) Python programs into stand-alone executables

PyInstaller Overview PyInstaller bundles a Python application and all its dependencies into a single package. The user can run the packaged app withou

PyInstaller 9.9k Jan 08, 2023
Core utilities for Python packages

packaging Reusable core utilities for various Python Packaging interoperability specifications. This library provides utilities that implement the int

Python Packaging Authority 451 Jan 04, 2023
An example of repository data as bundles

Bundles This repository is just an example of how we can host Git bundles in a way that supports fetching data from precomputed bundles without the or

Derrick Stolee 1 Jan 02, 2022
Create standalone executables from Python scripts, with the same performance and is cross-platform.

About cx_Freeze cx_Freeze creates standalone executables from Python scripts, with the same performance, is cross-platform and should work on any plat

Marcelo Duarte 1k Jan 04, 2023