# This is a sample Python script.
# Press ⌃R to execute it or replace it with your code.
# Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings.
import argparse
import os
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press ⌘F8 to toggle the breakpoint.
def check_result(result):
if result == 0 or result is None:
return
else:
raise Exception(result)
# def init_git():
# cwd = os.getcwd()
# os.chdir('../')
#
# result = os.system('git pull')
# check_result(result)
# os.chdir(cwd)
class Task:
def __init__(self, arguments):
if arguments.debug:
self.type = 'Debug'
else:
self.type = 'Release'
self.project_name = 'ios 工程名称'
self.export_options_plist_path = arguments.exportOptionsPlistPath
self.cwd = os.getcwd()
self.scheme = arguments.scheme
self.build_path = '%s/build/%s' % (self.cwd, self.scheme)
get_build_numberCode = 'sed -n \'/CURRENT_PROJECT_VERSION/{s/CURRENT_PROJECT_VERSION = //;s/;//;s/^[[' \
':space:]]*//;p;q;}\' ./%s.xcodeproj/project.pbxproj' % self.project_name
self.build_number = os.system(get_build_numberCode)
self.export_file_path = '%s/ipa/%s/%d/%s' % (self.cwd, self.type, self.build_number, self.scheme)
def clean_project(self):
print('*** 正在 清理工程 ***')
clean_code = 'xcodebuild clean -workspace %s/%s.xcworkspace -scheme %s -' \
'configuration %s -quiet' % (self.cwd, self.project_name, self.scheme, self.type)
print(clean_code)
result = os.system(clean_code)
check_result(result)
print('*** 清理完成 ***')
def build_project(self):
print('*** 正在 编译工程 ***')
build_code = 'xcodebuild archive -workspace %s/%s.xcworkspace -scheme %s -' \
'configuration %s -archivePath %s.xcarchive -quiet' % (
self.cwd, self.project_name, self.scheme, self.type, self.build_path)
print(build_code)
result = os.system(build_code)
check_result(result)
print('*** 编译完成 ***')
def export_project(self):
print('*** 正在 打包 ***')
export_code = 'xcodebuild -exportArchive -archivePath %s.xcarchive -' \
'configuration %s -exportPath %s -exportOptionsPlist %s -allowProvisioningUpdates YES -quiet' % (
self.build_path, self.type, self.export_file_path, self.export_options_plist_path)
print(export_code)
result = os.system(export_code)
check_result(result)
print('*** 打包完成 ***')
def start(self):
# init_git()
self.clean_project()
self.build_project()
self.export_project()
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print_hi('PyCharm')
parser = argparse.ArgumentParser(description="build ios Project")
parser.add_argument('--flavor', default='firIm', choices=['firIm', 'testflight'], help='default is firIm')
parser.add_argument('--debug', action='store_true', default=False,
help='set the environment of build the project')
parser.add_argument('--scheme', default='scheme', choices=['scheme1', 'scheme2', 'scheme3'],
help='select the target to build ')
parser.add_argument('--exportOptionsPlistPath', default='ios'
'/ExportOptions/AppStoreExportOptions1.plist',
help='set the exportOptionsPlist path')
task = Task(parser.parse_args())
task.start()
# See PyCharm help at https://www.jetbrains.com/help/pycharm/
打包脚本
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- ant打包脚本未指定 <user-sdk/>标签,打包生成apk运行界面异常 1 问题描述: 情况一未设置 标签,...
- 问题 使用 Jenkins 来做 iOS 项目的持续集成,升级 Xcode 9 之后,编译完成之后打包会一直报如下...
- 脚本 SYIPAGeneratedScript 脚本文件"xxx.sh"使用"Sublime_Text"工具进行编...