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 __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 + '拉取成功')
def __checkout(self): for cmd in self.c['vcs']['checkout']: func.popen_read(cmd)