美文网首页
打包脚本

打包脚本

作者: _海角_ | 来源:发表于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/
    
    

    相关文章

      网友评论

          本文标题:打包脚本

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