def __build(self): interface.print('正在打包' + self.name + '前端代码') func.loading() stdout, stderr = func.popen_read('npm run build') func.loading(0) if self.__is_build_failed(stdout): func.exit(self.name + '前端代码打包失败') # 如果打包失败, 挂起 interface.print('前端代码打包成功')
def __export(self): if not self.c['output']: return output = self.c['output'] app = self.__get_ipa_path(output) export = output['distribute'] if self.c[ 'is_export_distribute'] else output['export'] if not os.path.exists(app) or not os.path.exists( os.path.dirname(export)): return interface.print('源包路径不对或导出目录不存在, 未导出') shutil.copy(app, export) # 将应用复制到目标目录 self.__clear_source() # 清除所打包 interface.print(self.c['name'] + self.platform['name'] + '已导出到:' + export)
def __build_android(self): interface.print('正在打包安卓' + self.c['name']) func.loading() func.popen_read('cordova prepare android') cmd = 'cordova build android' if not self.c['is_debug']: # 如果是打发布包 cmd += ' --release' # 加上发布标签 if self.c['keystore']: # 如果有配置签名, 则对应用签名 keystore = self.c['keystore'] cmd += ' -- --keystore="' + keystore[ 'path'] + '" --storePassword='******'store_password'] + ' --password='******'password'] + ' --alias=' + keystore['alias'] stdout, stderr = func.popen_read(cmd) func.loading(0) if self.__is_build_failed(stdout): func.exit(self.c['name'] + '安卓打包失败') # 如果打包失败, 挂起 interface.print(self.c['name'] + '安卓打包成功')
def __build_ios(self): interface.print('正在打包苹果' + self.c['name']) func.loading() func.popen_read('cordova prepare ios') if self.c['is_export_distribute']: # 苹果暂不自动打发布包 func.loading(0) elif func.get(self.c, 'is_semi_automatic'): # 如果是半自动, 则等待手动打包后继续操作 func.loading(0) is_continue = interface.wait_package() if not is_continue: func.exit(self.c['name'] + '苹果打包失败') # 用户终止, 退出程序 else: cmd = 'cordova build ios --device' if not self.c['is_debug']: cmd += '' # 如果是打发布包 if self.c['build_config']: cmd += ' --buildConfig' # 如果有配置创建配置, 则补上创建配置 stdout, stderr = func.popen_read(cmd) func.loading(0) if self.__is_build_failed(stdout): func.exit(self.c['name'] + '苹果打包失败') # 如果打包失败, 挂起 interface.print(self.c['name'] + '苹果打包成功')
def __pull(self): self.__checkout() stdout, stderr = func.popen_read(self.c['vcs']['pull']) if self.__is_git_failed(stdout): func.exit(self.name + '拉取失败') # 如果拉取失败, 挂起 interface.print(self.name + '拉取成功')