CN114816370A - 一种对iOS端SDK静态库进行任意细粒度拆分的方法 - Google Patents
一种对iOS端SDK静态库进行任意细粒度拆分的方法 Download PDFInfo
- Publication number
- CN114816370A CN114816370A CN202210744951.4A CN202210744951A CN114816370A CN 114816370 A CN114816370 A CN 114816370A CN 202210744951 A CN202210744951 A CN 202210744951A CN 114816370 A CN114816370 A CN 114816370A
- Authority
- CN
- China
- Prior art keywords
- architecture
- file
- package
- document
- command
- 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/30—Creation or generation of source code
-
- 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
-
- 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/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/72—Code refactoring
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
本发明公开了一种对iOS端SDK静态库进行任意细粒度拆分的方法,包括如下步骤:将一个完整的静态库父framework拆分成多个模块独立的静态库子framework,首先提取出框架文件的核心文件作为多架构文档包;利用lipo命令、语句‑info以及路径参数查看多架构文档包路径;使用lipo命令拆分多架构文件包为多个单架构文件包;利用ar命令工具将拆分的所有单架构文档包中的目标文件拆解出来;根据功能模块所需要的目标文件重新组合单架构文件包;利用ar命令工具将多个重新组合的单架构文档包合并为独立的静态库子框架文件。本发明具有更低的人力、时间、维护成本,极具灵活性,可跟随业务需求变动随时调整拆分方案。
Description
技术领域
本发明涉及互联网开发技术领域,尤其涉及到一种对iOS端SDK静态库进行任意细粒度拆分的方法。
背景技术
随着市场上各类客户的各类需求,当前SDK内包含的功能模块数量不断增多,随之而来的SDK体积也愈发庞大。核心矛盾也随之出现 —— 并非所有的客户,都需要所有的功能。而且客户强烈不愿意承担无关功能带来的体积增幅,以及代码稳定性风险。
若要解决此问题,则需要将一个 framework 文件,拆分成多个细粒度更高的 “子framework”,每个 “子framework” 分别负责不同的模块。
行业内现有的传统方案上,如果要拆分出 “子framework”,方案有两个:1、在Xcode上新建一个Project,新建Project则会自动附带对应的Target,将需要作为独立功能模块的类文件,移动进该Project中。则Target将会编译出一个独立的 framework,该framework包含独立的功能模块;2、在Xcode上面向原有的Project,直接新建一个Target,针对需要作为独立功能模块的类文件,勾选作为新Target的成员文件之一;则Target将会编译出一个独立的 framework,该framework包含独立的功能模块。
上述两个方案虽可行,但明显存在人力成本、时间成本、维护成本极高的缺点。以上两个方案,都同样需要依赖于Xcode去进行管理文件、编译、生成对应的framework。因此,现有技术由此而来的缺点及问题则显而易见:1、工作量极大。每新增一个细分的独立功能模块,就需要新增一个Project或Target,并进行类文件配置或移动、配置对应的头文件、修改存在引用关系的其他模块的引用语句。随着需要划分的独立模块越多,则工作量不断重复增加。同时导致开发环境愈发臃肿庞大,而带来的维护成本也极高。2、变动成本大。若后续随着业务变动,需要将一个功能模块拆得更细分,或需要将两个以上功能模块,重新合并为一个。则需要先拆除以往的操作,并重新重复一次“第1点”所述步骤。方案灵活性极低。3、团队协作难度大。随着Project、Target的新增,开发环境将有大量改动点。共同负责该项目的其他开发成员,都需面对大量改动点的同步工作,及处理可能发生的代码冲突问题。4、质量难以确保。因该方案下的独立framework,是单独重新编译生成的,因此通常需单独测试验证,才能确保质量。
由此可见,在软件服务行业当中,若长期应用以上两种方案,成本投入将极其之高。对于日渐复杂、变化节奏快的市场客户需求,上述方案将无法与之匹配。
发明内容
针对上述技术问题,本发明的目的在于提供需要一种对iOS端SDK静态库进行任意细粒度拆分的方法。本发明对于 “父framework拆分子framework”的工作,要求降低人力成本、时间成本、维护成本,并能随业务需求,进行灵活变动更改“拆分方案”。此外,本发明跳出Xcode编译framework的全流程,而改为从产物入手,针对framework包产物直接作拆分处理,来生成子framework。
本发明的技术方案如下:
一种对iOS端SDK静态库进行任意细粒度拆分的方法,其特征在于,包括如下步骤:
S1:将一个完整的静态库父framework拆分成多个模块独立的静态库子framework,第一步是子framework提取出framework的核心文件作为多架构文档包;
S2:利用lipo命令、语句-info以及路径参数查看多架构文档包路径;
S3:使用lipo命令拆分多架构文件包为多个单架构文件包;
S4:将拆分的所有单架构文档包中的目标文件进一步拆解出来;
S5:根据功能模块所需要的目标文件重新组合单架构文件包;
S6:将多个重新组合的单架构文档包合并为独立的静态库子framework。
更进一步地,所述步骤S3包括如下步骤:
S301:剥离多架构文档包的所有单个架构,其中,通过语句lipo以及输入路径参数输入多架构文档包路径,通过语句-thin以及架构名参数剥离本次单架构文档包的架构,通过语句-output以及输出路径参数输出单架构文档包的输出路径;
S302:使用同样命令进行重复操作直至剥离所有多架构文档包的所有架构。
更进一步地,所述步骤S4包括如下步骤:
步骤S401:利用ar命令工具,使用特定语句 ar -v -x -l 以及单架构文档包路径参数拆解单架构文档包的目标文件;
步骤S402:使用同样命令进行重复操作直至完成所有架构文档包的目标文件拆解。
更进一步地,所述步骤S5包括如下步骤:
步骤S501:利用ar命令工具,使用特定语句ar -r -v -l以及新单架构文档包路径参数将功能模块所需要的一系列目标文件,重新组合出新的单架构文档包;
步骤S502:使用同样命令进行重复操作直至根据功能模块所需的所有单架构文档包的目标文件重组出新的单架构文档包。
更进一步地,所述步骤S6是通过如下步骤实现的:
步骤S601:利用lipo命令工具,使用特定语句-create以及每个单架构文档包的路径参数,建立新的多架构文档包;
步骤S602:使用特定语句-output以及输出路径参数输出多架构文档包。
更进一步地,所有步骤使用脚本语言进行封装使用。
更进一步地,所述功能模块是根据业务需求来灵活变动的任意业务模块。
与现有技术相比,本发明的具体实施例具有以下有益效果:
1、更低的人力成本、时间成本、维护成本:因不受Xcode编译framework的流程限制,而无需关注或操作Xcode环境中的Project、Target、头文件等等,自然地降低了各项成本。
2、极具灵活性,可跟随业务需求变动,随时调整拆分方案:因从产物入手,直接针对完整的静态库framework(即父framework)进行拆分重组出模块独立的子framework,则更具灵活性。
3、质量稳定可控:面向产物生成子库,天然决定子framework必然与父framework效果质量一致。无需重复测试验证质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1为本发明的对iOS端SDK静态库进行任意细粒度拆分的方法示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
首先针对存在的技术术语进行描述或定义,其中:
iOS:iphone的操作系统; SDK:软件开发工具包。
Xcode是运行在操作系统Mac OS上的集成开发工具(IDE),由Apple Inc开发;
IDE:指集成开发环境(Integrated Development Environment),是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具;
Mac OS:由苹果公司开发的运行于苹果电脑上的操作系统;
Project:即“工程”,包含了所有的源文件、资源文件,和构建一个或者多个Target 的信息;
Target:即“编译目标”,Target 定义了构造一个 Product 所需的文件、编译指令、编译配置。一个 Target 对应于一个 Product;
Product:即“产物”,不同的类型的项目,可按需产出不同类型的 Product产物,如可执行文件、framework包等等;
如图1所示,根据本发明的具体实施方式,本发明提出了一种对iOS端SDK静态库进行任意细粒度拆分的方法,包括如下步骤:
S1:将一个完整的静态库父framework拆分成多个模块独立的静态库子framework,第一步是子framework提取出framework的核心文件作为多架构文档包;
本申请的技术方案在Mac OS环境下实现,其中,本申请的父framework是指原framework文件,体积大,包含的模块全面齐全。而子framework是指从原framework文件(即父framework)中,经过拆分后,得出的体积更小、模块更细分的小framework文件;本领域可以清楚地理解,framework是指iOS平台上 SDK的一种存在形式,一般以.framework 后缀结尾。framework内部包含头文件、配置表、多架构文档包,包括有动态库、静态库两种类型。本申请针对静态库进行私有化操作。其中头文件是指对外暴露需要公开的类文件,每个framework都需要有一个头文件;而类文件是指声明了类的文件,在iOS开发上,通常情况下有.h和.m两个文件,来共同声明描述一个类。其中类是指一种实现信息封装的基础,包含数据说明和一组操作数据或传递消息的函数。
模块是指独立的一块功能,如“播放器”、“PPT”,二者分别是两个功能模块;
多架构文档包是目标文件的集合多架构文档包由多个单架构文档包组成,而每个单架构文档包是目标文件的集合。一个架构对应一个集合,多架构文档包中一般包含多个架构的目标文件集合。多架构文档包即静态库的原身,是静态库的核心文件。
S2:利用lipo命令、语句-info以及路径参数查看多架构文档包路径;其中,lipo命令是指创建或处理文件的命令工具,通过-info结合相应参数对多架构文档包的架构进行查看。
S3:使用lipo命令拆分多架构文件包为多个单架构文件包;本申请通过lipo命令结合相应语句对多架构文档包的架构进行拆分。
根据本发明的具体实施例,步骤S3包括如下步骤:
S301:剥离多架构文档包的所有单个架构,其中,通过语句lipo以及输入路径参数输入多架构文档包路径,通过语句-thin以及架构名参数剥离本次单架构文档包的架构,通过语句-output以及输出路径参数输出单架构文档包的输出路径;
S302:使用同样命令进行重复操作直至剥离所有多架构文档包的所有架构。
S4:将拆分的所有单架构文档包中的目标文件进一步拆解出来;
目标文件即.o后缀文件,是代码经过编译后的一种存在形态。目标文件是可执行代码的二进制形式,可以被操作系统载入内存执行。
本申请中目标文件拆解的目的是为了重组。不拆出来零件,就无法重新按需组合。当拆分出来一个个.o目标文件后,再根据业务需求,进一步用.o目标文件进行重组成特定模块的单架构文档包。
根据本发明的具体实施例,步骤S4包括如下步骤:
步骤S401:利用ar命令工具,使用特定语句 ar -v -x -l 以及单架构文档包路径参数拆解单架构文档包的目标文件;
步骤S402:使用同样命令进行重复操作直至完成所有架构文档包的目标文件拆解。
S5:根据功能模块所需要的目标文件重新组合单架构文件包;
其中,重组,是一个让功能混杂的单架构文档包,变成功能单一的单架构文档包的过程。
重组前,各模块的.o目标文件混杂在同一个单架构文档包中,导致该文档包体积大,且需求单一的时候无法单独使用,会牵连其他无关.o目标文件一并编译加载,导致程序负担增大。重组后,该文档包体积更小,功能模块更精简,使用场景更特定。使用方调用时,不会牵连无关.o 目标文件,更不会带上无关代码的潜在问题风险。因此,可以让程序的加载负担减小,降低程度风险性。
根据本发明的具体实施例,步骤S5包括如下步骤:
步骤S501:利用ar命令工具,使用特定语句ar -r -v -l以及新单架构文档包路径参数将功能模块所需要的一系列目标文件,重新组合出新的单架构文档包;
步骤S502:使用同样命令进行重复操作直至根据功能模块所需的所有单架构文档包的目标文件重组出新的单架构文档包。
S6:将多个重新组合的单架构文档包合并为独立的静态库子framework。
本领域技术人员可以知道,单架构文档包,不具备“设备”兼容性。因此需要将多个单架构文档包重新组合,得出支持多个架构的文档包。并将多架构文档包,放入静态库子framework中,作为framework的核心(或称原身),才可具备多架构兼容性,以适应不同架构的硬件设备。
根据本发明的具体实施例,步骤S6是通过如下步骤实现的:
步骤S601:利用lipo命令工具,使用特定语句-create以及每个单架构文档包的路径参数,建立新的多架构文档包;
步骤S602:使用特定语句-output以及输出路径参数输出多架构文档包。
进一步地,根据本发明的具体实施例,所有步骤使用脚本语言进行封装使用。其中,脚本语言是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
进一步地,根据本发明的具体实施例,所述功能模块所述功能模块是根据业务需求来灵活变动的任意业务模块,其本质是进行任意地划分重组。本申请的功能模块可以具体为播放器模块或者PPT模块。本领域技术人员可以根据需要进行相应的选择。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (7)
1.一种对iOS端SDK静态库进行任意细粒度拆分的方法,其特征在于,包括如下步骤:
S1:将一个完整的静态库父framework拆分成多个模块独立的静态库子framework,第一步是子framework的提取出framework的核心文件作为多架构文档包;
S2:利用lipo命令、语句-info以及路径参数查看多架构文档包路径;
S3:使用lipo命令拆分多架构文件包为多个单架构文件包;
S4:将拆分的所有单架构文档包中的目标文件进一步拆解出来;
S5:根据功能模块所需要的目标文件重新组合单架构文件包;
S6:将多个重新组合的单架构文档包合并为独立的静态库子framework。
2.根据权利要求1所述的方法,其特征在于,所述步骤S3包括如下步骤:
S301:剥离多架构文档包的所有单个架构,其中,通过语句lipo以及输入路径参数输入多架构文档包路径,通过语句-thin以及架构名参数剥离本次单架构文档包的架构,通过语句-output以及输出路径参数输出单架构文档包的输出路径;
S302:使用同样命令进行重复操作直至剥离所有多架构文档包的所有架构。
3.根据权利要求1所述的方法,其特征在于,所述步骤S4包括如下步骤:
步骤S401:利用ar命令工具,使用特定语句 ar -v -x -l 以及单架构文档包路径参数拆解单架构文档包的目标文件;
步骤S402:使用同样命令进行重复操作直至完成所有架构文档包的目标文件拆解。
4.根据权利要求1所述的方法,其特征在于,所述步骤S5包括如下步骤:
步骤S501:利用ar命令工具,使用特定语句ar -r -v -l以及新单架构文档包路径参数将功能模块所需要的一系列目标文件,重新组合出新的单架构文档包;
步骤S502:使用同样命令进行重复操作直至根据功能模块所需的所有单架构文档包的目标文件重组出新的单架构文档包。
5.根据权利要求1所述的方法,其特征在于,所述步骤S6是通过如下步骤实现的:
步骤S601:利用lipo命令工具,使用特定语句-create以及每个单架构文档包的路径参数,建立新的多架构文档包;
步骤S602:使用特定语句-output以及输出路径参数输出多架构文档包。
6.根据权利要求1所述的方法,其特征在于,所有步骤使用脚本语言进行封装使用。
7.根据权利要求1所述的方法,其特征在于,所述功能模块是根据业务需求来灵活变动的任意业务模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210744951.4A CN114816370A (zh) | 2022-06-29 | 2022-06-29 | 一种对iOS端SDK静态库进行任意细粒度拆分的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210744951.4A CN114816370A (zh) | 2022-06-29 | 2022-06-29 | 一种对iOS端SDK静态库进行任意细粒度拆分的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114816370A true CN114816370A (zh) | 2022-07-29 |
Family
ID=82522560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210744951.4A Pending CN114816370A (zh) | 2022-06-29 | 2022-06-29 | 一种对iOS端SDK静态库进行任意细粒度拆分的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114816370A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941494A (zh) * | 2022-12-29 | 2023-04-07 | 苏州盛科通信股份有限公司 | 一种细粒度切片时隙协商的方法及应用 |
CN116560699A (zh) * | 2023-07-10 | 2023-08-08 | 易方信息科技股份有限公司 | 通过sdk版本混搭进行快速修复的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160224324A1 (en) * | 2015-02-02 | 2016-08-04 | Google Inc. | Fine-grained demand driven ipo infrastructure |
CN107066291A (zh) * | 2017-02-09 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 软件开发工具包的打包方法、装置及设备、可读介质 |
CN109960501A (zh) * | 2019-02-18 | 2019-07-02 | 青岛聚好联科技有限公司 | 应用程序app架构模型、处理方法及终端设备 |
CN112650498A (zh) * | 2020-12-21 | 2021-04-13 | 北京五八信息技术有限公司 | 静态库集成方法、装置、电子设备及存储介质 |
WO2022116437A1 (zh) * | 2020-12-03 | 2022-06-09 | 平安科技(深圳)有限公司 | 多架构静态库冲突处理方法、装置、设备及存储介质 |
-
2022
- 2022-06-29 CN CN202210744951.4A patent/CN114816370A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160224324A1 (en) * | 2015-02-02 | 2016-08-04 | Google Inc. | Fine-grained demand driven ipo infrastructure |
CN107066291A (zh) * | 2017-02-09 | 2017-08-18 | 阿里巴巴集团控股有限公司 | 软件开发工具包的打包方法、装置及设备、可读介质 |
CN109960501A (zh) * | 2019-02-18 | 2019-07-02 | 青岛聚好联科技有限公司 | 应用程序app架构模型、处理方法及终端设备 |
WO2022116437A1 (zh) * | 2020-12-03 | 2022-06-09 | 平安科技(深圳)有限公司 | 多架构静态库冲突处理方法、装置、设备及存储介质 |
CN112650498A (zh) * | 2020-12-21 | 2021-04-13 | 北京五八信息技术有限公司 | 静态库集成方法、装置、电子设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
_MR_XIE_: "静态库".a"的拆分与合并", 《简书,HTTPS://WWW.JIANSHU.COM/P/9D8B2162A475》 * |
YZFHKMS-X: "lipo命令拆分、合并iOS静态库", 《博客园,HTTPS://WWW.CNBLOGS.COM/YZFHKMS-X/P/14636668.HTML》 * |
康桂花等: "《计算概论》", 31 August 2016, 中国铁道出版社 * |
郑天民: "《向技术管理者转型 软件开发人员跨越行业、技术、管理的转型思维与实践》", 31 October 2017, 九州出版社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941494A (zh) * | 2022-12-29 | 2023-04-07 | 苏州盛科通信股份有限公司 | 一种细粒度切片时隙协商的方法及应用 |
CN116560699A (zh) * | 2023-07-10 | 2023-08-08 | 易方信息科技股份有限公司 | 通过sdk版本混搭进行快速修复的方法及装置 |
CN116560699B (zh) * | 2023-07-10 | 2024-02-13 | 易方信息科技股份有限公司 | 通过sdk版本混搭进行快速修复的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114816370A (zh) | 一种对iOS端SDK静态库进行任意细粒度拆分的方法 | |
US8583413B2 (en) | Computer method and apparatus for chaining of model-to-model transformations | |
CN105718251B (zh) | 多语言sdk自动化实现方法及系统 | |
CN106775744B (zh) | 一种生成静态库的方法和装置 | |
CN110377290A (zh) | 一种目标工程编译的方法、装置及设备 | |
US9823908B2 (en) | Apparatus for providing framework to develop client application executed on multiple platforms, and method using the same | |
CN105468428B (zh) | 一种安卓源代码编译方法及系统 | |
CN111399814A (zh) | 一种构建任务可视化编排方法及装置 | |
CN111176629A (zh) | 一种应用开发的方法和装置 | |
CN102855175B (zh) | 自动化测试方法及装置 | |
CN108829400A (zh) | 一种iOS无须反复编译的渠道打包方法 | |
CN108038241A (zh) | 集成web可视化工作流方法、装置、可读存储介质及系统 | |
CN110457044A (zh) | Haxe应用程序的编译方法、装置及电子设备 | |
Martinez et al. | Recovering sequence diagrams from object-oriented code: An ADM approach | |
CN104423948B (zh) | 自动化脚本运行方法及装置 | |
CN112988588B (zh) | 客户端软件调试方法、装置、存储介质及电子设备 | |
CN115113850A (zh) | 一种跨平台应用的构建、运行方法、服务器、终端和系统 | |
US7337428B2 (en) | Automatic batching of tasks in a build process | |
CN114840195B (zh) | 一种针对iOS SDK静态库的私有化方法 | |
CN113448874A (zh) | 一种单元测试脚本的生成方法及装置 | |
CN109326330B (zh) | 生物信息分析工具的制作方法、装置及可存储介质 | |
CN113885841A (zh) | 脚本生成的方法、装置、电子设备和可读介质 | |
WO2020211074A1 (zh) | 一种多方安全计算数据处理方法、装置及系统 | |
JP2002116911A (ja) | オブジェクト指向プログラムの自動生成装置 | |
CN111596923A (zh) | Haxe静态链接库构建方法、装置和电子设备 |
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 | ||
CB02 | Change of applicant information |
Address after: Room 402, No. 66, North Street, University Town Center, Panyu District, Guangzhou City, Guangdong Province, 510006 Applicant after: Yifang Information Technology Co.,Ltd. Address before: 510006 room 402, No. 66 (innovation building), North Central Street, University City, Panyu District, Guangzhou, Guangdong Province Applicant before: GUANGZHOU EASEFUN INFORMATION TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220729 |
|
RJ01 | Rejection of invention patent application after publication |