美文网首页
打包脚本

打包脚本

作者: _海角_ | 来源:发表于2022-08-19 10:06 被阅读0次
# 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/

相关文章

  • gradlew和gradle的区别

    1. Android Studio打包和直接用gradlew脚本打包用的脚本不同,Android Studio打包...

  • 持续集成

    手动打包存在的问题 操作繁琐 时间慢 不够逼格 自动化打包 shell脚本打包shell脚本打包之前最好先buli...

  • iOS自动打包ipa(shell脚本)

    系列 iOS自动打包ipa(shell脚本)iOS自动打包ipa(Python脚本) 安装xctool shell...

  • 闲来无事的懒人-打包ipa

    gym 打包 cd项目根目录, 创建自动打包脚本: 提升脚本权限 chmod +x gym.sh 执行脚本 ./g...

  • Xcode自动打包

    [iOS]从零开始写个自动打包IPA脚本 【iOS打ipa包】:使用终端实现自动打包 iOS自动打包并发布脚本

  • iOS自动打包ipa(Python脚本)

    系列 iOS自动打包ipa(shell脚本)iOS自动打包ipa(Python脚本) 安装Python库 Pyth...

  • pyinstaller的使用

    pyinstaller简介 pyinstaller是一个常用的python脚本打包工具,可以将python脚本打包...

  • jenkins自动部署

    服务端自动打包脚本 自动部署脚本

  • 持续集成

    打包配置 httpclient测试代码打包: springboot集成代码打包: Jenkins--shell脚本...

  • GO打包部署脚本

    GO打包部署脚本 $ Linux 打包 build_linux.bat $ Windows exe 打包 bu...

网友评论

      本文标题:打包脚本

      本文链接:https://www.haomeiwen.com/subject/rlzygrtx.html