auto packaging for iOS

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

You might also like...
Solaris IPS: Image Packaging System

Solaris Image Packaging System Introduction The image packaging system (IPS) is a software delivery system with interaction with a network repository

A simple weather tool. I made this as a way for me to learn Python, API, and PyPi packaging.
A simple weather tool. I made this as a way for me to learn Python, API, and PyPi packaging.

A simple weather tool. I made this as a way for me to learn Python, API, and PyPi packaging.

QPT-Quick packaging tool 前项式Python环境快捷封装工具

QPT - Quick packaging tool 快捷封装工具 GitHub主页 | Gitee主页 QPT是一款可以“模拟”开发环境的多功能封装工具,一行命令即可将普通的Python脚本打包成EXE可执行程序,与此同时还可轻松引入CUDA等深度学习加速库, 尽可能在用户使用时复现您的开发环境。

Pipeline is an asset packaging library for Django.

Pipeline Pipeline is an asset packaging library for Django, providing both CSS and JavaScript concatenation and compression, built-in JavaScript templ

A library which implements low-level functions that relate to packaging and distribution of Python

What is it? Distlib is a library which implements low-level functions that relate to packaging and distribution of Python software. It is intended to

Automatic packaging of the open-composite libs for OvGME

OvGME Packager for OpenXR – OpenComposite for DCS Note This repository is currently unsupported and needs to be migrated to the upstream OpenComposite

HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps.
HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps.

HMLLDB is a collection of LLDB commands to assist in the debugging of iOS apps. 中文介绍 Features Non-intrusive. Your iOS project does not need to be modi

Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS
Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS

Kivy Innovative user interfaces made easy. Kivy is an open source, cross-platform Python framework for the development of applications that make use o

A Discord bot that automatically saves SHSH blobs for all of your iOS devices.

AutoTSS AutoTSS is a Discord bot that automatically saves SHSH blobs for all of your iOS devices. Want a CLI automatic blob saver? Check out AutoTSS-c

About A python based Apple Quicktime protocol,you can record audio and video from real iOS devices

介绍 本应用程序使用 python 实现,可以通过 USB 连接 iOS 设备进行屏幕共享 高帧率(30〜60fps) 高画质 低延迟(200ms) 非侵入性 支持多设备并行 Mac OSX 安装 python =3.7 brew install libusb pkg-config 如需使用 g

Simple utlity for sniffing decrypted HTTP/HTTPS traffic on a jailbroken iOS device into an HAR format.
Simple utlity for sniffing decrypted HTTP/HTTPS traffic on a jailbroken iOS device into an HAR format.

Description iOS devices contain a hidden feature for sniffing decrypted HTTP/HTTPS traffic from all processes using the CFNetwork framework into an HA

Research shows Google collects 20x more data from Android than Apple collects from iOS. Block this non-consensual telemetry using pihole blocklists.

pihole-antitelemetry Research shows Google collects 20x more data from Android than Apple collects from iOS. Block both using these pihole lists. Proj

frida-based ceserver.  iOS analysis is possible with Cheat Engine.
frida-based ceserver. iOS analysis is possible with Cheat Engine.

frida-ceserver frida-based ceserver. iOS analysis is possible with Cheat Engine. Original by Dark Byte. Usage Install frida on iOS. python main.py Cyd

a-shell: A terminal for iOS, with multiple windows

a-shell: A terminal for iOS, with multiple windows

Tool to decrypt iOS apps using r2frida
Tool to decrypt iOS apps using r2frida

r2flutch Yet another tool to decrypt iOS apps using r2frida. Requirements It requires to install Frida on the Jailbroken iOS device: Jailbroken device

Downloads SEP, Baseband and BuildManifest automatically for signed iOS version's for connected iDevice

FutureHelper Supports macOS and Windows Downloads SEP, Baseband and BuildManifest automatically for signed iOS version's (including beta firmwares) fo

iOS Snapchat parser for chats and cached files

ParseSnapchat iOS Snapchat parser for chats and cached files Tested on Windows and Linux install required libraries: pip install -r requirements.txt c

This is the fuzzer I made to fuzz Preview on macOS and iOS like 8years back when I just started fuzzing things.

Fuzzing PDFs like its 1990s This is the fuzzer I made to fuzz Preview on macOS and iOS like 8years back when I just started fuzzing things. Some discl

This code makes the logs provided by Fiddler proxy of the Google Analytics events coming from iOS more readable.

GA-beautifier-iOS This code makes the logs provided by Fiddler proxy of the Google Analytics events coming from iOS more readable. To run it, create a

Owner
DeeCo
DeeCo
A library which implements low-level functions that relate to packaging and distribution of Python

What is it? Distlib is a library which implements low-level functions that relate to packaging and distribution of Python software. It is intended to

Python Packaging Authority 29 Oct 11, 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
Auto Liker, Auto Reaction, Auto Comment, Auto Follower Tool. RajeLiker Credit Hacker.

Auto Liker, Auto Reaction, Auto Comment, Auto Follower Tool. RajeLiker Credit Hacker. Unlimited RajeLiker Credit Hack. Thanks To RajeLiker.

Md. Mehedi Hasan 32 Dec 28, 2022
Python dependency management and packaging made easy.

Poetry: Dependency Management for Python Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right sta

Poetry 23.1k Jan 1, 2023
Python PyPi staging server and packaging, testing, release tool

devpi: PyPI server and packaging/testing/release tool This repository contains three packages comprising the core devpi system on the server and clien

null 629 Jan 1, 2023
Pipeline is an asset packaging library for Django.

Pipeline Pipeline is an asset packaging library for Django, providing both CSS and JavaScript concatenation and compression, built-in JavaScript templ

Jazzband 1.4k Dec 26, 2022
Pipeline is an asset packaging library for Django.

Pipeline Pipeline is an asset packaging library for Django, providing both CSS and JavaScript concatenation and compression, built-in JavaScript templ

Jazzband 1.4k Jan 3, 2023
Python dependency management and packaging made easy.

Poetry: Dependency Management for Python Poetry helps you declare, manage and install dependencies of Python projects, ensuring you have the right sta

Poetry 23.2k Jan 5, 2023
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 7, 2023
Simplified packaging of Python modules

Flit is a simple way to put Python packages and modules on PyPI. It tries to require less thought about packaging and help you avoid common mistakes.

Thomas Kluyver 1.9k Jan 5, 2023