CN113448591A - 一种基于python快速创建iOS工程的方法 - Google Patents
一种基于python快速创建iOS工程的方法 Download PDFInfo
- Publication number
- CN113448591A CN113448591A CN202110809709.6A CN202110809709A CN113448591A CN 113448591 A CN113448591 A CN 113448591A CN 202110809709 A CN202110809709 A CN 202110809709A CN 113448591 A CN113448591 A CN 113448591A
- Authority
- CN
- China
- Prior art keywords
- project
- ios
- file
- python
- files
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种基于python快速创建iOS工程的方法,基于python语言开发通用脚本,获取iOS工程模板后,结合git代码管理模块,实现快速创建新的iOS工程。本发明适用于任何iOS工程,支持objective‑c和swift工程,可以提高研发效率,减少工作成本,通用脚本适用于任何iOS工程,可以以任何iOS工程为模板,一行命令快速创建新工程,自动完成工程名、类文件前缀,工程配置文件等相关配置修改,实现快速创建项目工程的功能,方便开发人员进行二次开发,避免原先复杂的手动修改工程名称及相关配置的操作。
Description
技术领域
本发明涉及电数字数据处理的技术领域,特别涉及一种基于python快速创建iOS工程的方法。
背景技术
Python提供高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python的优势在于,其解释器易于扩展,可以使用C或C++扩展新的功能和数据类型、可用于定制化软件中的扩展程序语言,同时,其丰富的标准库,提供适用于各个主要系统平台的源码或机器码。
而现有技术中,iOS创建工程使用Xcode 原生模板创建,实用性较低,工程创建后还需要手动集成很多常用到的工具库,集成步骤繁琐、耗时间、容易出错;随着业务的不断扩展,很多项目工程需要在原先已有的工程基础上创建新的工程,并针对新功能进行功能扩展;对此,常规做法是复制一份原先工程代码,再手动进行相关代码配置修改,效率低,重复劳动,且容易遗漏出错。
发明内容
本发明解决了现有技术中存在的问题,提供了一种优化的基于python快速创建iOS工程的方法。
本发明所采用的技术方案是,一种基于python快速创建iOS工程的方法,所述方法包括以下步骤:
步骤1:基于python语言开发通用脚本;
步骤2:获取iOS工程模板;
步骤3:结合git代码管理模块,实现快速创建新的iOS工程。
优选地,所述通用脚本包括以下执行步骤:
步骤1.1:获取待处理工程信息,对工程文件进行预处理;
步骤1.2:判断文件类型,基于文件类型进行对应的操作;
步骤1.3:运行安装工程引用的插件库的命令;
步骤1.4:编译。
优选地,所述步骤1.1中,预处理包括对工程所有文件进行格式化,解析出各个类的名称及文件的类型;所述文件的类型包括配置文件、类文件、资源文件。
优选地,所述步骤1.1中,根据命令行参数,替换项目工程名及相关涉及工程名的路径地址。
优选地,所述步骤1.2中,对于配置文件、类文件,根据命令行参数,全局搜索替换文件前缀字符及被引用到的头文件字符。
优选地,所述步骤1.4中,插件库安装完毕,自动编译工程,如编译成功,则输出日志、操作成功,若编译出错,则输出对应的错误日志。
优选地,所述步骤2中,获取iOS工程模板,将通用脚本文件添加至iOS工程模板的工程目录下,与工程执行文件同一目录。
优选地,所述步骤3中,包括以下步骤:
步骤3.1:本地环境配置脚本执行环境,在本地.bash_profile文件添加需要识别的命令行文本字符;
步骤3.2:打开终端在绝对路径下输入配置的命令行执行命令,实现快速创建新的iOS工程。
本发明涉及一种优化的基于python快速创建iOS工程的方法,基于python语言开发通用脚本,获取iOS工程模板后,结合git代码管理模块,实现快速创建新的iOS工程。
本发明适用于任何 iOS工程,支持objective-c 和 swift 工程,可以提高研发效率,减少工作成本,通用脚本适用于任何iOS工程,可以以任何iOS工程为模板,一行命令快速创建新工程,自动完成工程名、类文件前缀,工程配置文件等相关配置修改,实现快速创建项目工程的功能,方便开发人员进行二次开发,避免原先复杂的手动修改工程名称及相关配置的操作。
附图说明
图1为本发明的流程图;
图2为本发明的通用脚本执行流程图。
具体实施方式
下面结合实施例对本发明做进一步的详细描述,但本发明的保护范围并不限于此。
本发明涉及一种基于python快速创建iOS工程的方法,所述方法包括以下步骤:
步骤1:基于python语言开发通用脚本;
所述通用脚本包括以下执行步骤:
步骤1.1:获取待处理工程信息,对工程文件进行预处理;
所述步骤1.1中,预处理包括对工程所有文件进行格式化,解析出各个类的名称及文件的类型;所述文件的类型包括配置文件、类文件、资源文件。
所述步骤1.1中,根据命令行参数,替换项目工程名及相关涉及工程名的路径地址。
步骤1.2:判断文件类型,基于文件类型进行对应的操作;
所述步骤1.2中,对于配置文件、类文件,根据命令行参数,全局搜索替换文件前缀字符及被引用到的头文件字符。
步骤1.3:运行安装工程引用的插件库的命令;
步骤1.4:编译。
所述步骤1.4中,插件库安装完毕,自动编译工程,如编译成功,则输出日志、操作成功,若编译出错,则输出对应的错误日志。
本发明中,通用脚本的构建即是本技术的工作原理,具体来说:
对工程所有文件进行格式化,解析出各个类的名称及文件的类型,包括配置文件、类文件、资源文件等;
根据命令行参数,替换项目工程名及相关涉及工程名的路径地址;
根据命令行参数,全局搜索替换{.h.m}类文件前缀字符及相关被引用到的头文件字符;资源文件不做任何修改,直接跳过;对所有的文件执行操作,直至不存在未处理文件;
工程名、文件修改替换完之后,自动运行pod install 命令安装工程引用的插件库;
插件库安装好以后,自动编译工程,如编译成功,输出日志操作成功;编译出错,则输出相关错误日志,方便能快速定位问题。
步骤2:获取iOS工程模板;
所述步骤2中,获取iOS工程模板,将通用脚本文件添加至iOS工程模板的工程目录下,与工程执行文件同一目录。
步骤3:结合git代码管理模块,实现快速创建新的iOS工程。
所述步骤3中,包括以下步骤:
步骤3.1:本地环境配置脚本执行环境,在本地.bash_profile文件添加需要识别的命令行文本字符;
步骤3.2:打开终端在绝对路径下输入配置的命令行执行命令,实现快速创建新的iOS工程。
本发明中,由于已经在脚本处进行过试错,故此时的iOS工程原则上应当可以正常创建、不存在报错的情况,只需确保命令行内容无误即可。
本发明可以以任何一个工程为模块,快速创建一个拥有该工程同样业务功能的新项目工程,方便开发人员进行二次开发,避免原先复杂的手动修改工程名称及相关配置的操作,适用于任何 iOS工程,支持objective-c 和 swift 工程,一定程度上减少了工作量,提高了生产效率。
Claims (8)
1.一种基于python快速创建iOS工程的方法,其特征在于:所述方法包括以下步骤:
步骤1:基于python语言开发通用脚本;
步骤2:获取iOS工程模板;
步骤3:结合git代码管理模块,实现快速创建新的iOS工程。
2.根据权利要求1所述的一种基于python快速创建iOS工程的方法,其特征在于:所述通用脚本包括以下执行步骤:
步骤1.1:获取待处理工程信息,对工程文件进行预处理;
步骤1.2:判断文件类型,基于文件类型进行对应的操作;
步骤1.3:运行安装工程引用的插件库的命令;
步骤1.4:编译。
3.根据权利要求2所述的一种基于python快速创建iOS工程的方法,其特征在于:所述步骤1.1中,预处理包括对工程所有文件进行格式化,解析出各个类的名称及文件的类型;所述文件的类型包括配置文件、类文件、资源文件。
4.根据权利要求2所述的一种基于python快速创建iOS工程的方法,其特征在于:所述步骤1.1中,根据命令行参数,替换项目工程名及相关涉及工程名的路径地址。
5.根据权利要求3所述的一种基于python快速创建iOS工程的方法,其特征在于:所述步骤1.2中,对于配置文件、类文件,根据命令行参数,全局搜索替换文件前缀字符及被引用到的头文件字符。
6.根据权利要求2所述的一种基于python快速创建iOS工程的方法,其特征在于:所述步骤1.4中,插件库安装完毕,自动编译工程,如编译成功,则输出日志、操作成功,若编译出错,则输出对应的错误日志。
7.根据权利要求1所述的一种基于python快速创建iOS工程的方法,其特征在于:所述步骤2中,获取iOS工程模板,将通用脚本文件添加至iOS工程模板的工程目录下,与工程执行文件同一目录。
8.根据权利要求1所述的一种基于python快速创建iOS工程的方法,其特征在于:所述步骤3中,包括以下步骤:
步骤3.1:本地环境配置脚本执行环境,在本地.bash_profile文件添加需要识别的命令行文本字符;
步骤3.2:打开终端在绝对路径下输入配置的命令行执行命令,实现快速创建新的iOS工程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110809709.6A CN113448591A (zh) | 2021-07-17 | 2021-07-17 | 一种基于python快速创建iOS工程的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110809709.6A CN113448591A (zh) | 2021-07-17 | 2021-07-17 | 一种基于python快速创建iOS工程的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113448591A true CN113448591A (zh) | 2021-09-28 |
Family
ID=77816623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110809709.6A Pending CN113448591A (zh) | 2021-07-17 | 2021-07-17 | 一种基于python快速创建iOS工程的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113448591A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309376A (zh) * | 2022-08-25 | 2022-11-08 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095442A (zh) * | 2016-06-13 | 2016-11-09 | 福州智永信息科技有限公司 | 基于web的自动高速出包方法 |
CN108647010A (zh) * | 2018-04-27 | 2018-10-12 | 武汉斗鱼网络科技有限公司 | 一种项目工程初始化的方法、终端设备及存储介质 |
CN110377290A (zh) * | 2019-07-22 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种目标工程编译的方法、装置及设备 |
CN111459465A (zh) * | 2020-03-27 | 2020-07-28 | 北京五八信息技术有限公司 | 一种Flutter工程文件的生成方法和装置 |
CN112882700A (zh) * | 2021-02-09 | 2021-06-01 | 京东方科技集团股份有限公司 | iOS应用程序构建方法及装置、电子设备及存储介质 |
CN112905225A (zh) * | 2019-12-04 | 2021-06-04 | 北京京东尚科信息技术有限公司 | 创建持续集成工具构建任务的方法和装置 |
-
2021
- 2021-07-17 CN CN202110809709.6A patent/CN113448591A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095442A (zh) * | 2016-06-13 | 2016-11-09 | 福州智永信息科技有限公司 | 基于web的自动高速出包方法 |
CN108647010A (zh) * | 2018-04-27 | 2018-10-12 | 武汉斗鱼网络科技有限公司 | 一种项目工程初始化的方法、终端设备及存储介质 |
CN110377290A (zh) * | 2019-07-22 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种目标工程编译的方法、装置及设备 |
CN112905225A (zh) * | 2019-12-04 | 2021-06-04 | 北京京东尚科信息技术有限公司 | 创建持续集成工具构建任务的方法和装置 |
CN111459465A (zh) * | 2020-03-27 | 2020-07-28 | 北京五八信息技术有限公司 | 一种Flutter工程文件的生成方法和装置 |
CN112882700A (zh) * | 2021-02-09 | 2021-06-01 | 京东方科技集团股份有限公司 | iOS应用程序构建方法及装置、电子设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309376A (zh) * | 2022-08-25 | 2022-11-08 | 北京泰迪熊移动科技有限公司 | 一种应用创建方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20040158820A1 (en) | System for generating an application framework and components | |
US9405518B2 (en) | Leveraging legacy applications for use with modern applications | |
US8056062B2 (en) | Methods and systems for converting application code in turbine control systems | |
CN112799677B (zh) | 一种编译期的hook方法、装置、设备及存储介质 | |
EP0827072A1 (en) | Correcting program porting errors | |
US20030088860A1 (en) | Compiler annotation for binary translation tools | |
CN103218294B (zh) | 一种嵌入式系统的调试方法、调试转换装置和系统 | |
CN108399064B (zh) | 基于Qt开发的多语言词条生成方法 | |
US20070271553A1 (en) | Method and system for translating assembler code to a target language | |
CN103309647A (zh) | 应用程序多语言支持系统及方法 | |
CN110109671B (zh) | 一种webpack标签尺寸样式转换方法及装置 | |
US20130152061A1 (en) | Full fidelity parse tree for programming language processing | |
CN112269566B (zh) | 脚本生成处理方法、装置、设备及系统 | |
CN1526104A (zh) | 分析结构化数据 | |
CN112379917A (zh) | 浏览器兼容性提升方法、装置、设备及存储介质 | |
US7730451B2 (en) | Source server | |
US6381736B1 (en) | Method for compile-time type-checking of arguments for externally-specified format strings | |
CN111061486B (zh) | 一种安卓应用程序增量方法 | |
CN113448591A (zh) | 一种基于python快速创建iOS工程的方法 | |
CN110750310B (zh) | 基于ios系统组件化开发的二进制和源码切换方法 | |
CN104881396A (zh) | 图形化程序的编译文件形成方法 | |
CN109947711B (zh) | 一种对ios项目开发过程中的多语言文件自动化管理方法 | |
CN111596970B (zh) | 动态库延迟加载方法、装置、设备和存储介质 | |
CN109509467B (zh) | 代码生成方法及装置 | |
CN117573095A (zh) | 一种支持持续集成的交叉编译框架的搭建及编译方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210928 |
|
RJ01 | Rejection of invention patent application after publication |